| Index: runtime/vm/debugger.h
|
| diff --git a/runtime/vm/debugger.h b/runtime/vm/debugger.h
|
| index bf932feb31e18e883c1f587416453068f129b081..206616ab707890e430dae5ec9451db599e6ae2af 100644
|
| --- a/runtime/vm/debugger.h
|
| +++ b/runtime/vm/debugger.h
|
| @@ -260,6 +260,7 @@ class ActivationFrame : public ZoneAllocated {
|
| kRegular,
|
| kAsyncSuspensionMarker,
|
| kAsyncCausal,
|
| + kAsyncActivation,
|
| };
|
|
|
| ActivationFrame(uword pc,
|
| @@ -274,6 +275,8 @@ class ActivationFrame : public ZoneAllocated {
|
|
|
| explicit ActivationFrame(Kind kind);
|
|
|
| + explicit ActivationFrame(const Closure& async_activation);
|
| +
|
| uword pc() const { return pc_; }
|
| uword fp() const { return fp_; }
|
| uword sp() const { return sp_; }
|
| @@ -332,6 +335,10 @@ class ActivationFrame : public ZoneAllocated {
|
| // the complete script, function, and, local variable objects are included.
|
| void PrintToJSONObject(JSONObject* jsobj, bool full = false);
|
|
|
| + RawObject* GetAsyncAwaiter();
|
| +
|
| + bool HandlesException(const Instance& exc_obj);
|
| +
|
| private:
|
| void PrintToJSONObjectRegular(JSONObject* jsobj, bool full);
|
| void PrintToJSONObjectAsyncCausal(JSONObject* jsobj, bool full);
|
| @@ -346,6 +353,12 @@ class ActivationFrame : public ZoneAllocated {
|
| void GetVarDescriptors();
|
| void GetDescIndices();
|
|
|
| + RawObject* GetAsyncStreamControllerStreamAwaiter(const Object& stream);
|
| + RawObject* GetAsyncStreamControllerStream();
|
| + RawObject* GetAsyncCompleterAwaiter(const Object& completer);
|
| + RawObject* GetAsyncCompleter();
|
| + void ExtractTokenPositionFromAsyncClosure();
|
| +
|
| static const char* KindToCString(Kind kind) {
|
| switch (kind) {
|
| case kRegular:
|
| @@ -627,12 +640,14 @@ class Debugger {
|
| void SyncBreakpointLocation(BreakpointLocation* loc);
|
|
|
| ActivationFrame* TopDartFrame() const;
|
| - static ActivationFrame* CollectDartFrame(Isolate* isolate,
|
| - uword pc,
|
| - StackFrame* frame,
|
| - const Code& code,
|
| - const Array& deopt_frame,
|
| - intptr_t deopt_frame_offset);
|
| + static ActivationFrame* CollectDartFrame(
|
| + Isolate* isolate,
|
| + uword pc,
|
| + StackFrame* frame,
|
| + const Code& code,
|
| + const Array& deopt_frame,
|
| + intptr_t deopt_frame_offset,
|
| + ActivationFrame::Kind kind = ActivationFrame::kRegular);
|
| static RawArray* DeoptimizeToArray(Thread* thread,
|
| StackFrame* frame,
|
| const Code& code);
|
| @@ -648,10 +663,14 @@ class Debugger {
|
| Array* deopt_frame);
|
| static DebuggerStackTrace* CollectStackTrace();
|
| static DebuggerStackTrace* CollectAsyncCausalStackTrace();
|
| + static DebuggerStackTrace* CollectAwaiterReturnStackTrace();
|
| void SignalPausedEvent(ActivationFrame* top_frame, Breakpoint* bpt);
|
|
|
| intptr_t nextId() { return next_id_++; }
|
|
|
| + bool ShouldPauseOnAsyncException(DebuggerStackTrace* stack_trace,
|
| + const Instance& exc);
|
| +
|
| bool ShouldPauseOnException(DebuggerStackTrace* stack_trace,
|
| const Instance& exc);
|
|
|
|
|