-
Simon Zünd authored
This is a reland of commit 3297ccca This is a straight-up reland of the original CL. The failing test was flaky and removed with https://crrev.com/c/3868727. We replaced the test with a proper DevTools e2e test: https://crrev.com/c/3867522 Original change's description: > [debug] Immediately step-in for 'stack check triggered' debug breaks > > This CL changes debug breaks that are triggered via interrupts (i.e. > via stack check). One client of this behavior is the `Debugger.pause` > CDP method. > > The problem is that when we pause so early, the JSFunction didn't have > time yet to create and push it's context. This requires special > handling in the ScopeIterator and makes an upcoming change unnecessary > complex. > > Another (minor) problem is that local debug-evaluate can't change > context-allocated local variables (see changed regression bug). Since > the context is not yet created and pushed, variables are written to > the DebugEvaluateContext that goes away after the evaluation. > > The solution is to mirror what `BreakOnNextFunction` does. Instead > of staying paused in the middle of the function entry, we trigger > a "step in" and pause at the first valid breakable position instead. > This ensures that the function context is already created and pushed. > > Note that we do this only in case for JSFunctions. In all other cases > we keep the existing behavior and stay paused in the entry. > > R=jgruber@chromium.org > > Fixed: chromium:1246907 > Change-Id: I0cd8ae6e049a3b55bdd44858e769682a1ca47064 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3854501 > Reviewed-by: Jakob Linke <jgruber@chromium.org> > Commit-Queue: Simon Zünd <szuend@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82817} Change-Id: I1938ccb5979fd80dff530b2ffe3f18714b7eff3f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3867727 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#82901}
a55ecfaf