[vm] Fix ShouldPauseOnException with an empty Dart stack.
TEST=vm/dart/gc
Change-Id: I435d7a33745c30738899eb1f1c08bd94185302c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357740
Reviewed-by: Derek Xu <derekx@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
diff --git a/runtime/vm/debugger.cc b/runtime/vm/debugger.cc
index 37692d7..64da86a 100644
--- a/runtime/vm/debugger.cc
+++ b/runtime/vm/debugger.cc
@@ -1877,6 +1877,11 @@
return true;
}
ASSERT(exc_pause_info_ == kPauseOnUnhandledExceptions);
+ // There might be no Dart stack if we hit an exception in the runtime, most
+ // likely OutOfMemory.
+ if (stack_trace->Length() == 0) {
+ return false;
+ }
// Exceptions coming from invalid token positions should be skipped
ActivationFrame* top_frame = stack_trace->FrameAt(0);
if (!top_frame->TokenPos().IsReal() && top_frame->TryIndex() != -1) {