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_DEBUG_H_ | 5 #ifndef V8_DEBUG_DEBUG_H_ |
6 #define V8_DEBUG_DEBUG_H_ | 6 #define V8_DEBUG_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 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
455 void ChangeBreakOnException(ExceptionBreakType type, bool enable); | 455 void ChangeBreakOnException(ExceptionBreakType type, bool enable); |
456 bool IsBreakOnException(ExceptionBreakType type); | 456 bool IsBreakOnException(ExceptionBreakType type); |
457 | 457 |
458 // Stepping handling. | 458 // Stepping handling. |
459 void PrepareStep(StepAction step_action); | 459 void PrepareStep(StepAction step_action); |
460 void PrepareStepIn(Handle<JSFunction> function); | 460 void PrepareStepIn(Handle<JSFunction> function); |
461 void PrepareStepInSuspendedGenerator(); | 461 void PrepareStepInSuspendedGenerator(); |
462 void PrepareStepOnThrow(); | 462 void PrepareStepOnThrow(); |
463 void ClearStepping(); | 463 void ClearStepping(); |
464 void ClearStepOut(); | 464 void ClearStepOut(); |
465 void EnableStepIn(); | |
466 | 465 |
467 bool PrepareFunctionForBreakPoints(Handle<SharedFunctionInfo> shared); | 466 bool PrepareFunctionForBreakPoints(Handle<SharedFunctionInfo> shared); |
468 | 467 |
469 void RecordAsyncFunction(Handle<JSGeneratorObject> generator_object); | 468 void RecordAsyncFunction(Handle<JSGeneratorObject> generator_object); |
470 | 469 |
471 // Returns whether the operation succeeded. Compilation can only be triggered | 470 // Returns whether the operation succeeded. Compilation can only be triggered |
472 // if a valid closure is passed as the second argument, otherwise the shared | 471 // if a valid closure is passed as the second argument, otherwise the shared |
473 // function needs to be compiled already. | 472 // function needs to be compiled already. |
474 bool EnsureDebugInfo(Handle<SharedFunctionInfo> shared, | 473 bool EnsureDebugInfo(Handle<SharedFunctionInfo> shared, |
475 Handle<JSFunction> function); | 474 Handle<JSFunction> function); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 | 538 |
540 // Support for embedding into generated code. | 539 // Support for embedding into generated code. |
541 Address is_active_address() { | 540 Address is_active_address() { |
542 return reinterpret_cast<Address>(&is_active_); | 541 return reinterpret_cast<Address>(&is_active_); |
543 } | 542 } |
544 | 543 |
545 Address after_break_target_address() { | 544 Address after_break_target_address() { |
546 return reinterpret_cast<Address>(&after_break_target_); | 545 return reinterpret_cast<Address>(&after_break_target_); |
547 } | 546 } |
548 | 547 |
549 Address step_in_enabled_address() { | 548 Address last_step_action_address() { |
550 return reinterpret_cast<Address>(&thread_local_.step_in_enabled_); | 549 return reinterpret_cast<Address>(&thread_local_.last_step_action_); |
551 } | 550 } |
552 | 551 |
553 Address suspended_generator_address() { | 552 Address suspended_generator_address() { |
554 return reinterpret_cast<Address>(&thread_local_.suspended_generator_); | 553 return reinterpret_cast<Address>(&thread_local_.suspended_generator_); |
555 } | 554 } |
556 | 555 |
557 StepAction last_step_action() { return thread_local_.last_step_action_; } | 556 StepAction last_step_action() { return thread_local_.last_step_action_; } |
558 | 557 |
559 DebugFeatureTracker* feature_tracker() { return &feature_tracker_; } | 558 DebugFeatureTracker* feature_tracker() { return &feature_tracker_; } |
560 | 559 |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
686 | 685 |
687 // Source statement position from last step next action. | 686 // Source statement position from last step next action. |
688 int last_statement_position_; | 687 int last_statement_position_; |
689 | 688 |
690 // Frame pointer from last step next or step frame action. | 689 // Frame pointer from last step next or step frame action. |
691 Address last_fp_; | 690 Address last_fp_; |
692 | 691 |
693 // Frame pointer of the target frame we want to arrive at. | 692 // Frame pointer of the target frame we want to arrive at. |
694 Address target_fp_; | 693 Address target_fp_; |
695 | 694 |
696 // Whether functions are flooded on entry for step-in and step-frame. | |
697 // If we stepped out to the embedder, disable flooding to spill stepping | |
698 // to the next call that the embedder makes. | |
699 bool step_in_enabled_; | |
700 | |
701 // Stores the way how LiveEdit has patched the stack. It is used when | 695 // Stores the way how LiveEdit has patched the stack. It is used when |
702 // debugger returns control back to user script. | 696 // debugger returns control back to user script. |
703 LiveEdit::FrameDropMode frame_drop_mode_; | 697 LiveEdit::FrameDropMode frame_drop_mode_; |
704 | 698 |
705 // Value of accumulator in interpreter frames. In non-interpreter frames | 699 // Value of accumulator in interpreter frames. In non-interpreter frames |
706 // this value will be the hole. | 700 // this value will be the hole. |
707 Handle<Object> return_value_; | 701 Handle<Object> return_value_; |
708 | 702 |
709 Object* suspended_generator_; | 703 Object* suspended_generator_; |
710 }; | 704 }; |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
817 Handle<Code> code); | 811 Handle<Code> code); |
818 static bool DebugBreakSlotIsPatched(Address pc); | 812 static bool DebugBreakSlotIsPatched(Address pc); |
819 static void ClearDebugBreakSlot(Isolate* isolate, Address pc); | 813 static void ClearDebugBreakSlot(Isolate* isolate, Address pc); |
820 }; | 814 }; |
821 | 815 |
822 | 816 |
823 } // namespace internal | 817 } // namespace internal |
824 } // namespace v8 | 818 } // namespace v8 |
825 | 819 |
826 #endif // V8_DEBUG_DEBUG_H_ | 820 #endif // V8_DEBUG_DEBUG_H_ |
OLD | NEW |