• Simon Zünd's avatar
    Reland "[debug] Immediately step-in for 'stack check triggered' debug breaks" · a55ecfaf
    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: 's avatarJakob Linke <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#82901}
    a55ecfaf
debug.h 24.8 KB