-
Simon Zünd authored
Doc: https://bit.ly/revive-restart-frame Context: https://crrev.com/c/3582395 (whole feature) This CL adds a new optional flag `canBeRestarted` to every call frame in Debugger.paused events. As the name suggests, the flag indicates whether we can restart a particular frame through Debugger.restartFrame once implemented. We are not able to safely restart all frames: * We don't support WASM frames * We don't support frames where resumable functions (async fns, generators) and embedder C++ frames are between the top-most frame and the to-be-restarted frame. Note that from a CDP perspective the flag doesn't actually guarantee a successful restart. CDP clients can issue CDP commands between the Debugger.paused event and before a user decides to restart a frame, which can potentially mess with the stack. The `canBeRestarted` flag tests are folded into the Debugger.restartFrame tests. As the feature is not yet fully implemented we short-circuit most of the tests for now and only run them up until the first Debugger.restartFrame call fails (except "fails-for-resumables.js"). This means the tests exercise the `canBeRestarted` flag, but not the restarting functionality itself. R=bmeurer@chromium.org, kimanh@chromium.org Bug: chromium:1303521 Change-Id: I01ab46dc3557ab8383960969fbe03e00604cc5e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596160Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/main@{#80046}
ec41a70e