Branch: refs/heads/main
Home:
https://github.com/dart-lang/sdk
Commit: 8cc9f62b804465f0a4b8e5eb5f24dd2cc9482acd
https://github.com/dart-lang/sdk/commit/8cc9f62b804465f0a4b8e5eb5f24dd2cc9482acd
Author: Tess Strickland <
sstr...@google.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M pkg/dart2bytecode/lib/assembler.dart
M pkg/dart2bytecode/lib/bytecode_generator.dart
M runtime/vm/constants_kbc.h
M runtime/vm/interpreter.cc
Log Message:
-----------
[vm,dyn_modules] Don't emit debugger stops for pure stack manipulation.
Here, pure stack manipulation means adding/removing values from the
top of the current stack without exceptional control flow and/or
retrieving values from or storing values to other places, e.g., local
variables or objects. These are instructions for which source positions
are never emitted, and so there is no need to check for single stepping
at them since they cannot serve as breakpoints and they can only be
reached while single stepping from previous instructions that have
the same source location.
In particular, before skipping these instructions, stepping out of a method call with an unused result could stop at the Drop1 instruction
afterwards. Since that instruction inherits the source position of
the call, that pause is reported as at the method call, not the next
source position following the call.
The only method call where a pause after stepping out should be the
position of the method is for dart:developer::debugger, since the
whole point of calling it is to force the debugger to pause at it.
Since the Drop1 following it is now ignored, an explicit Nop is
introduced to serve as a pause point instead.
TEST=ci
(This doesn't change existing test results, but this behavior
was exposed while working on current failures.)
Cq-Include-Trybots: luci.dart.try:vm-dyn-linux-debug-x64-try
Change-Id: I42e38c04094ce360b5a0291aba2c7341461b4512
Reviewed-on:
https://dart-review.googlesource.com/c/sdk/+/513700
Reviewed-by: Alexander Markov <
alexm...@google.com>
Commit-Queue: Tess Strickland <
sstr...@google.com>
To unsubscribe from these emails, change your notification settings at
https://github.com/dart-lang/sdk/settings/notifications