OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef RUNTIME_VM_DEBUGGER_H_ | 5 #ifndef RUNTIME_VM_DEBUGGER_H_ |
6 #define RUNTIME_VM_DEBUGGER_H_ | 6 #define RUNTIME_VM_DEBUGGER_H_ |
7 | 7 |
8 #include "include/dart_tools_api.h" | 8 #include "include/dart_tools_api.h" |
9 | 9 |
10 #include "vm/object.h" | 10 #include "vm/object.h" |
(...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
598 void PrintBreakpointsToJSONArray(JSONArray* jsarr) const; | 598 void PrintBreakpointsToJSONArray(JSONArray* jsarr) const; |
599 void PrintSettingsToJSONObject(JSONObject* jsobj) const; | 599 void PrintSettingsToJSONObject(JSONObject* jsobj) const; |
600 | 600 |
601 static bool IsDebuggable(const Function& func); | 601 static bool IsDebuggable(const Function& func); |
602 | 602 |
603 intptr_t limitBreakpointId() { return next_id_; } | 603 intptr_t limitBreakpointId() { return next_id_; } |
604 | 604 |
605 // Callback to the debugger to continue frame rewind, post-deoptimization. | 605 // Callback to the debugger to continue frame rewind, post-deoptimization. |
606 void RewindPostDeopt(); | 606 void RewindPostDeopt(); |
607 | 607 |
| 608 static DebuggerStackTrace* CollectAwaiterReturnStackTrace(); |
| 609 |
608 private: | 610 private: |
609 RawError* PauseRequest(ServiceEvent::EventKind kind); | 611 RawError* PauseRequest(ServiceEvent::EventKind kind); |
610 | 612 |
611 // Finds the breakpoint we hit at |location|. | 613 // Finds the breakpoint we hit at |location|. |
612 Breakpoint* FindHitBreakpoint(BreakpointLocation* location, | 614 Breakpoint* FindHitBreakpoint(BreakpointLocation* location, |
613 ActivationFrame* top_frame); | 615 ActivationFrame* top_frame); |
614 | 616 |
615 // Will return false if we are not at an await. | 617 // Will return false if we are not at an await. |
616 bool SetupStepOverAsyncSuspension(const char** error); | 618 bool SetupStepOverAsyncSuspension(const char** error); |
617 | 619 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
672 static void AppendCodeFrames(Thread* thread, | 674 static void AppendCodeFrames(Thread* thread, |
673 Isolate* isolate, | 675 Isolate* isolate, |
674 Zone* zone, | 676 Zone* zone, |
675 DebuggerStackTrace* stack_trace, | 677 DebuggerStackTrace* stack_trace, |
676 StackFrame* frame, | 678 StackFrame* frame, |
677 Code* code, | 679 Code* code, |
678 Code* inlined_code, | 680 Code* inlined_code, |
679 Array* deopt_frame); | 681 Array* deopt_frame); |
680 static DebuggerStackTrace* CollectStackTrace(); | 682 static DebuggerStackTrace* CollectStackTrace(); |
681 static DebuggerStackTrace* CollectAsyncCausalStackTrace(); | 683 static DebuggerStackTrace* CollectAsyncCausalStackTrace(); |
682 static DebuggerStackTrace* CollectAwaiterReturnStackTrace(); | |
683 void SignalPausedEvent(ActivationFrame* top_frame, Breakpoint* bpt); | 684 void SignalPausedEvent(ActivationFrame* top_frame, Breakpoint* bpt); |
684 | 685 |
685 intptr_t nextId() { return next_id_++; } | 686 intptr_t nextId() { return next_id_++; } |
686 | 687 |
687 bool ShouldPauseOnException(DebuggerStackTrace* stack_trace, | 688 bool ShouldPauseOnException(DebuggerStackTrace* stack_trace, |
688 const Instance& exc); | 689 const Instance& exc); |
689 | 690 |
690 void CollectLibraryFields(const GrowableObjectArray& field_list, | 691 void CollectLibraryFields(const GrowableObjectArray& field_list, |
691 const Library& lib, | 692 const Library& lib, |
692 const String& prefix, | 693 const String& prefix, |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
772 | 773 |
773 friend class Isolate; | 774 friend class Isolate; |
774 friend class BreakpointLocation; | 775 friend class BreakpointLocation; |
775 DISALLOW_COPY_AND_ASSIGN(Debugger); | 776 DISALLOW_COPY_AND_ASSIGN(Debugger); |
776 }; | 777 }; |
777 | 778 |
778 | 779 |
779 } // namespace dart | 780 } // namespace dart |
780 | 781 |
781 #endif // RUNTIME_VM_DEBUGGER_H_ | 782 #endif // RUNTIME_VM_DEBUGGER_H_ |
OLD | NEW |