Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3075)

Unified Diff: runtime/vm/debugger.h

Issue 2782703002: Include the awaiter stack trace in the service protocol (Closed)
Patch Set: rmacnak review Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/observatory/tests/service/awaiter_async_stack_contents_test.dart ('k') | runtime/vm/debugger.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/debugger.h
diff --git a/runtime/vm/debugger.h b/runtime/vm/debugger.h
index 40a9063202c92b82a7827aa90e65b07b8ab9851a..74431852a688d6b7061edce320cfcec6943dfce1 100644
--- a/runtime/vm/debugger.h
+++ b/runtime/vm/debugger.h
@@ -336,6 +336,7 @@ class ActivationFrame : public ZoneAllocated {
void PrintToJSONObject(JSONObject* jsobj, bool full = false);
RawObject* GetAsyncAwaiter();
+ RawObject* GetCausalStack();
bool HandlesException(const Instance& exc_obj);
@@ -343,7 +344,7 @@ class ActivationFrame : public ZoneAllocated {
void PrintToJSONObjectRegular(JSONObject* jsobj, bool full);
void PrintToJSONObjectAsyncCausal(JSONObject* jsobj, bool full);
void PrintToJSONObjectAsyncSuspensionMarker(JSONObject* jsobj, bool full);
-
+ void PrintToJSONObjectAsyncActivation(JSONObject* jsobj, bool full);
void PrintContextMismatchError(intptr_t ctx_slot,
intptr_t frame_ctx_level,
intptr_t var_ctx_level);
@@ -368,6 +369,8 @@ class ActivationFrame : public ZoneAllocated {
return "AsyncCausal";
case kAsyncSuspensionMarker:
return "AsyncSuspensionMarker";
+ case kAsyncActivation:
+ return "AsyncActivation";
default:
UNREACHABLE();
return "";
@@ -541,6 +544,9 @@ class Debugger {
DebuggerStackTrace* AsyncCausalStackTrace();
DebuggerStackTrace* CurrentAsyncCausalStackTrace();
+ DebuggerStackTrace* AwaiterStackTrace();
+ DebuggerStackTrace* CurrentAwaiterStackTrace();
+
// Returns a debugger stack trace corresponding to a dart.core.StackTrace.
// Frames corresponding to invisible functions are omitted. It is not valid
// to query local variables in the returned stack.
@@ -693,7 +699,8 @@ class Debugger {
bool skip_next_step = false);
void CacheStackTraces(DebuggerStackTrace* stack_trace,
- DebuggerStackTrace* async_causal_stack_trace);
+ DebuggerStackTrace* async_causal_stack_trace,
+ DebuggerStackTrace* awaiter_stack_trace);
void ClearCachedStackTraces();
@@ -739,6 +746,7 @@ class Debugger {
// Current stack trace. Valid only while IsPaused().
DebuggerStackTrace* stack_trace_;
DebuggerStackTrace* async_causal_stack_trace_;
+ DebuggerStackTrace* awaiter_stack_trace_;
// When stepping through code, only pause the program if the top
// frame corresponds to this fp value, or if the top frame is
« no previous file with comments | « runtime/observatory/tests/service/awaiter_async_stack_contents_test.dart ('k') | runtime/vm/debugger.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698