Files
sdk/runtime/vm
Clement Skau d5dbf10672 [SDK] Adds non-eager async stack frame collector.
This is done by collecting all frames on the current stack until an async/async* frame is hit
which has yielded before (i.e. is not in sync-async case).
From there on it finds the closure of the async/async* frame and starts traversing the listeners:
  while (closure != null) {
    yield_index = closure.context[Context::kAsyncJumpVarIndex]
    pc = closure.function.code.pc_descriptors.LookupPcFromYieldIndex(yield_index);
    <emit pc in frame>
    closure = closure.context[Context::kAsyncCompleterVarIndex]._future._resultOrListeners.callback;
  }

Bug: https://github.com/dart-lang/sdk/issues/37668
Change-Id: I97030d22e529bf8a74ecd30a8a2589cfe57ad330
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122644
Commit-Queue: Clement Skau <cskau@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-11-26 11:51:27 +00:00
..
2019-08-08 00:47:55 +00:00
2019-10-07 18:13:06 +00:00
2019-11-14 18:28:20 +00:00
2019-10-27 18:18:29 +00:00
2018-11-01 16:37:22 +00:00
2019-01-25 16:45:13 +00:00
2019-06-03 14:36:04 +00:00
2019-06-03 14:36:04 +00:00
2019-05-06 21:01:39 +00:00
2019-11-01 19:08:42 +00:00
2019-10-17 16:51:32 +00:00
2018-12-10 23:15:27 +00:00
2018-12-10 23:15:27 +00:00
2019-10-17 16:51:32 +00:00
2019-10-17 16:51:32 +00:00