• 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
Name
Last commit
Last update
..
debug-prepare-step-in.js Loading commit data...
regress-102153.js Loading commit data...
regress-10319.js Loading commit data...
regress-1081309.js Loading commit data...
regress-109195.js Loading commit data...
regress-1170187.js Loading commit data...
regress-119609.js Loading commit data...
regress-131994.js Loading commit data...
regress-147497.js Loading commit data...
regress-1523.js Loading commit data...
regress-1586.js Loading commit data...
regress-1639.js Loading commit data...
regress-2296.js Loading commit data...
regress-269.js Loading commit data...
regress-2825.js Loading commit data...
regress-325676.js Loading commit data...
regress-3717.js Loading commit data...
regress-392114.js Loading commit data...
regress-4309-1.js Loading commit data...
regress-4309-2.js Loading commit data...
regress-4309-3.js Loading commit data...
regress-4320.js Loading commit data...
regress-4703.js Loading commit data...
regress-491536.js Loading commit data...
regress-5071.js Loading commit data...
regress-514362.js Loading commit data...
regress-5164.js Loading commit data...
regress-5279.js Loading commit data...
regress-5559.js Loading commit data...
regress-617882.js Loading commit data...
regress-662674.js Loading commit data...
regress-662935.js Loading commit data...
regress-9067.js Loading commit data...
regress-crbug-107996.js Loading commit data...
regress-crbug-119800.js Loading commit data...
regress-crbug-1357554.js Loading commit data...
regress-crbug-171715.js Loading commit data...
regress-crbug-222893.js Loading commit data...
regress-crbug-323936.js Loading commit data...
regress-crbug-387599.js Loading commit data...
regress-crbug-401915.js Loading commit data...
regress-crbug-405922.js Loading commit data...
regress-crbug-409614.js Loading commit data...
regress-crbug-432493.js Loading commit data...
regress-crbug-465298.js Loading commit data...
regress-crbug-467180.js Loading commit data...
regress-crbug-487289.js Loading commit data...
regress-crbug-491943.js Loading commit data...
regress-crbug-568477-1.js Loading commit data...
regress-crbug-568477-2.js Loading commit data...
regress-crbug-568477-3.js Loading commit data...
regress-crbug-568477-4.js Loading commit data...
regress-crbug-582048.js Loading commit data...
regress-crbug-582051.js Loading commit data...
regress-crbug-605581.js Loading commit data...
regress-crbug-609046.js Loading commit data...
regress-crbug-621361.js Loading commit data...
regress-crbug-633999.js Loading commit data...
regress-debug-code-recompilation.js Loading commit data...
regress-debug-context-load.js Loading commit data...
regress-debug-deopt-while-recompile.js Loading commit data...
regress-frame-details-null-receiver.js Loading commit data...
regress-opt-after-debug-deopt.js Loading commit data...
regress-prepare-break-while-recompile.js Loading commit data...