| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_DEBUG_H_ | 5 #ifndef V8_DEBUG_H_ |
| 6 #define V8_DEBUG_H_ | 6 #define V8_DEBUG_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/arguments.h" | 9 #include "src/arguments.h" |
| 10 #include "src/assembler.h" | 10 #include "src/assembler.h" |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 Isolate* isolate_; | 207 Isolate* isolate_; |
| 208 Handle<WeakValueHashTable> table_; | 208 Handle<WeakValueHashTable> table_; |
| 209 }; | 209 }; |
| 210 | 210 |
| 211 | 211 |
| 212 // Linked list holding debug info objects. The debug info objects are kept as | 212 // Linked list holding debug info objects. The debug info objects are kept as |
| 213 // weak handles to avoid a debug info object to keep a function alive. | 213 // weak handles to avoid a debug info object to keep a function alive. |
| 214 class DebugInfoListNode { | 214 class DebugInfoListNode { |
| 215 public: | 215 public: |
| 216 explicit DebugInfoListNode(DebugInfo* debug_info); | 216 explicit DebugInfoListNode(DebugInfo* debug_info); |
| 217 virtual ~DebugInfoListNode() { ClearInfo(); } | 217 ~DebugInfoListNode(); |
| 218 | 218 |
| 219 DebugInfoListNode* next() { return next_; } | 219 DebugInfoListNode* next() { return next_; } |
| 220 void set_next(DebugInfoListNode* next) { next_ = next; } | 220 void set_next(DebugInfoListNode* next) { next_ = next; } |
| 221 Handle<DebugInfo> debug_info() { return Handle<DebugInfo>(debug_info_); } | 221 Handle<DebugInfo> debug_info() { return Handle<DebugInfo>(debug_info_); } |
| 222 | 222 |
| 223 void ClearInfo(); | |
| 224 | |
| 225 private: | 223 private: |
| 226 // Global (weak) handle to the debug info object. | 224 // Global (weak) handle to the debug info object. |
| 227 DebugInfo** debug_info_; | 225 DebugInfo** debug_info_; |
| 228 | 226 |
| 229 // Next pointer for linked list. | 227 // Next pointer for linked list. |
| 230 DebugInfoListNode* next_; | 228 DebugInfoListNode* next_; |
| 231 }; | 229 }; |
| 232 | 230 |
| 233 | 231 |
| 234 | 232 |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 bool IsDebugGlobal(GlobalObject* global); | 467 bool IsDebugGlobal(GlobalObject* global); |
| 470 | 468 |
| 471 // Check whether this frame is just about to return. | 469 // Check whether this frame is just about to return. |
| 472 bool IsBreakAtReturn(JavaScriptFrame* frame); | 470 bool IsBreakAtReturn(JavaScriptFrame* frame); |
| 473 | 471 |
| 474 // Support for LiveEdit | 472 // Support for LiveEdit |
| 475 void FramesHaveBeenDropped(StackFrame::Id new_break_frame_id, | 473 void FramesHaveBeenDropped(StackFrame::Id new_break_frame_id, |
| 476 LiveEdit::FrameDropMode mode, | 474 LiveEdit::FrameDropMode mode, |
| 477 Object** restarter_frame_function_pointer); | 475 Object** restarter_frame_function_pointer); |
| 478 | 476 |
| 479 // Passed to MakeWeak. | |
| 480 static void HandlePhantomDebugInfo( | |
| 481 const PhantomCallbackData<DebugInfoListNode>& data); | |
| 482 | |
| 483 // Threading support. | 477 // Threading support. |
| 484 char* ArchiveDebug(char* to); | 478 char* ArchiveDebug(char* to); |
| 485 char* RestoreDebug(char* from); | 479 char* RestoreDebug(char* from); |
| 486 static int ArchiveSpacePerThread(); | 480 static int ArchiveSpacePerThread(); |
| 487 void FreeThreadResources() { } | 481 void FreeThreadResources() { } |
| 488 | 482 |
| 489 // Record function from which eval was called. | 483 // Record function from which eval was called. |
| 490 static void RecordEvalCaller(Handle<Script> script); | 484 static void RecordEvalCaller(Handle<Script> script); |
| 491 | 485 |
| 492 bool CheckExecutionState(int id) { | 486 bool CheckExecutionState(int id) { |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 bool auto_continue); | 587 bool auto_continue); |
| 594 void InvokeMessageHandler(MessageImpl message); | 588 void InvokeMessageHandler(MessageImpl message); |
| 595 | 589 |
| 596 static bool CompileDebuggerScript(Isolate* isolate, int index); | 590 static bool CompileDebuggerScript(Isolate* isolate, int index); |
| 597 void ClearOneShot(); | 591 void ClearOneShot(); |
| 598 void ActivateStepIn(StackFrame* frame); | 592 void ActivateStepIn(StackFrame* frame); |
| 599 void ClearStepIn(); | 593 void ClearStepIn(); |
| 600 void ActivateStepOut(StackFrame* frame); | 594 void ActivateStepOut(StackFrame* frame); |
| 601 void ClearStepNext(); | 595 void ClearStepNext(); |
| 602 void RemoveDebugInfoAndClearFromShared(Handle<DebugInfo> debug_info); | 596 void RemoveDebugInfoAndClearFromShared(Handle<DebugInfo> debug_info); |
| 603 void RemoveDebugInfo(DebugInfo** debug_info); | |
| 604 void RemoveDebugInfo(DebugInfoListNode* node); | |
| 605 void RemoveDebugInfo(DebugInfoListNode* prev, DebugInfoListNode* node); | |
| 606 Handle<Object> CheckBreakPoints(Handle<Object> break_point); | 597 Handle<Object> CheckBreakPoints(Handle<Object> break_point); |
| 607 bool CheckBreakPoint(Handle<Object> break_point_object); | 598 bool CheckBreakPoint(Handle<Object> break_point_object); |
| 608 | 599 |
| 609 inline void AssertDebugContext() { | 600 inline void AssertDebugContext() { |
| 610 DCHECK(isolate_->context() == *debug_context()); | 601 DCHECK(isolate_->context() == *debug_context()); |
| 611 DCHECK(in_debug_scope()); | 602 DCHECK(in_debug_scope()); |
| 612 } | 603 } |
| 613 | 604 |
| 614 void ThreadInit(); | 605 void ThreadInit(); |
| 615 | 606 |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 795 int call_argc = -1); | 786 int call_argc = -1); |
| 796 | 787 |
| 797 static void PatchDebugBreakSlot(Address pc, Handle<Code> code); | 788 static void PatchDebugBreakSlot(Address pc, Handle<Code> code); |
| 798 static void ClearDebugBreakSlot(Address pc); | 789 static void ClearDebugBreakSlot(Address pc); |
| 799 }; | 790 }; |
| 800 | 791 |
| 801 | 792 |
| 802 } } // namespace v8::internal | 793 } } // namespace v8::internal |
| 803 | 794 |
| 804 #endif // V8_DEBUG_H_ | 795 #endif // V8_DEBUG_H_ |
| OLD | NEW |