[vm] debugger print incomplete async stacktrace
With --trace-debugger-stacktrace being set, debugger will print the stack trace for both async and sync cases. But for async stacktrace, awaiters return call stack are missing from printing.
Change-Id: I2a81ead25bcad5b3b25da4666940f631237352d1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106441
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Zichang Guo <zichangguo@google.com>
diff --git a/runtime/vm/debugger.cc b/runtime/vm/debugger.cc
index 36971d6..06e0f45 100644
--- a/runtime/vm/debugger.cc
+++ b/runtime/vm/debugger.cc
@@ -2470,6 +2470,12 @@
ActivationFrame* activation = new (zone) ActivationFrame(async_activation);
activation->ExtractTokenPositionFromAsyncClosure();
stack_trace->AddActivation(activation);
+ if (FLAG_trace_debugger_stacktrace) {
+ OS::PrintErr(
+ "CollectAwaiterReturnStackTrace: visiting awaiter return "
+ "closures:\n\t%s\n",
+ activation->function().ToFullyQualifiedCString());
+ }
next_async_activation = activation->GetAsyncAwaiter();
if (next_async_activation.IsNull()) {
// No more awaiters. Extract the causal stack trace (if it exists).