• Simon Zünd's avatar
    [inspector] Add 'canBeRestarted' flag to CallFrames when debugger pauses · ec41a70e
    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: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarKim-Anh Tran <kimanh@chromium.org>
    Commit-Queue: Simon Zünd <szuend@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#80046}
    ec41a70e
Name
Last commit
Last update
..
add-binding-expected.txt Loading commit data...
add-binding.js Loading commit data...
add-web-driver-value-expected.txt Loading commit data...
add-web-driver-value.js Loading commit data...
await-promise-expected.txt Loading commit data...
await-promise.js Loading commit data...
call-function-on-async-expected.txt Loading commit data...
call-function-on-async.js Loading commit data...
call-function-on-side-effect-free-expected.txt Loading commit data...
call-function-on-side-effect-free.js Loading commit data...
clear-of-command-line-api-expected.txt Loading commit data...
clear-of-command-line-api.js Loading commit data...
client-console-api-message-expected.txt Loading commit data...
client-console-api-message.js Loading commit data...
command-line-api-expected.txt Loading commit data...
command-line-api-without-side-effects-expected.txt Loading commit data...
command-line-api-without-side-effects.js Loading commit data...
command-line-api.js Loading commit data...
compile-script-expected.txt Loading commit data...
compile-script.js Loading commit data...
console-api-repeated-in-console-expected.txt Loading commit data...
console-api-repeated-in-console.js Loading commit data...
console-assert-expected.txt Loading commit data...
console-assert.js Loading commit data...
console-context-expected.txt Loading commit data...
console-context.js Loading commit data...
console-formatter-expected.txt Loading commit data...
console-formatter.js Loading commit data...
console-line-and-column-expected.txt Loading commit data...
console-line-and-column.js Loading commit data...
console-log-doesnt-run-microtasks-expected.txt Loading commit data...
console-log-doesnt-run-microtasks.js Loading commit data...
console-memory-expected.txt Loading commit data...
console-memory.js Loading commit data...
console-message-before-enable-expected.txt Loading commit data...
console-message-before-enable.js Loading commit data...
console-message-omit-data-urls-expected.txt Loading commit data...
console-message-omit-data-urls.js Loading commit data...
console-messages-limits-expected.txt Loading commit data...
console-messages-limits.js Loading commit data...
console-methods-expected.txt Loading commit data...
console-methods.js Loading commit data...
console-spec-expected.txt Loading commit data...
console-spec.js Loading commit data...
console-table-expected.txt Loading commit data...
console-table.js Loading commit data...
console-time-end-format-expected.txt Loading commit data...
console-time-end-format.js Loading commit data...
console-time-log-expected.txt Loading commit data...
console-time-log.js Loading commit data...
console-time-repeat-expected.txt Loading commit data...
console-time-repeat.js Loading commit data...
console-timestamp-expected.txt Loading commit data...
console-timestamp.js Loading commit data...
context-destroyed-on-context-collected-expected.txt Loading commit data...
context-destroyed-on-context-collected.js Loading commit data...
create-context-expected.txt Loading commit data...
create-context.js Loading commit data...
custom-preview-expected.txt Loading commit data...
custom-preview.js Loading commit data...
enable-async-stack-expected.txt Loading commit data...
enable-async-stack.js Loading commit data...
error-preview-expected.txt Loading commit data...
error-preview.js Loading commit data...
error-stack-expected.txt Loading commit data...
error-stack-trace-limit-expected.txt Loading commit data...
error-stack-trace-limit.js Loading commit data...
error-stack.js Loading commit data...
es6-module-expected.txt Loading commit data...
es6-module.js Loading commit data...
evaluate-async-expected.txt Loading commit data...
evaluate-async-with-wrap-error-expected.txt Loading commit data...
evaluate-async-with-wrap-error.js Loading commit data...
evaluate-async.js Loading commit data...
evaluate-empty-stack-expected.txt Loading commit data...
evaluate-empty-stack.js Loading commit data...
evaluate-new-function-error-expected.txt Loading commit data...
evaluate-new-function-error.js Loading commit data...
evaluate-repl-await-expected.txt Loading commit data...
evaluate-repl-await.js Loading commit data...
evaluate-repl-mode-code-cache-expected.txt Loading commit data...
evaluate-repl-mode-code-cache.js Loading commit data...
evaluate-repl-mode-expected.txt Loading commit data...
evaluate-repl-mode-side-effecting-expected.txt Loading commit data...
evaluate-repl-mode-side-effecting.js Loading commit data...
evaluate-repl-mode.js Loading commit data...
evaluate-run-microtasks-expected.txt Loading commit data...
evaluate-run-microtasks.js Loading commit data...
evaluate-timeout-expected.txt Loading commit data...
evaluate-timeout.js Loading commit data...
evaluate-unique-context-id-expected.txt Loading commit data...
evaluate-unique-context-id.js Loading commit data...
evaluate-unserializable-expected.txt Loading commit data...
evaluate-unserializable.js Loading commit data...
evaluate-with-context-id-equal-zero-expected.txt Loading commit data...
evaluate-with-context-id-equal-zero.js Loading commit data...
evaluate-with-disable-breaks-expected.txt Loading commit data...
evaluate-with-disable-breaks.js Loading commit data...
evaluate-with-generate-preview-expected.txt Loading commit data...
evaluate-with-generate-preview.js Loading commit data...
evaluate-without-side-effects-expected.txt Loading commit data...
evaluate-without-side-effects-i18n-expected.txt Loading commit data...
evaluate-without-side-effects-i18n.js Loading commit data...
evaluate-without-side-effects.js Loading commit data...
exception-thrown-expected.txt Loading commit data...
exception-thrown-metadata-expected.txt Loading commit data...
exception-thrown-metadata.js Loading commit data...
exception-thrown.js Loading commit data...
exceptionthrown-on-connect-expected.txt Loading commit data...
exceptionthrown-on-connect.js Loading commit data...
function-location-expected.txt Loading commit data...
function-location.js Loading commit data...
function-scopes-expected.txt Loading commit data...
function-scopes.js Loading commit data...
get-exception-details-expected.txt Loading commit data...
get-exception-details.js Loading commit data...
get-heap-usage-expected.txt Loading commit data...
get-heap-usage.js Loading commit data...
get-isolate-id-expected.txt Loading commit data...
get-isolate-id.js Loading commit data...
get-properties-expected.txt Loading commit data...
get-properties-on-proxy-expected.txt Loading commit data...
get-properties-on-proxy.js Loading commit data...
get-properties-preview-expected.txt Loading commit data...
get-properties-preview.js Loading commit data...
get-properties.js Loading commit data...
internal-properties-entries-expected.txt Loading commit data...
internal-properties-entries.js Loading commit data...
internal-properties-expected.txt Loading commit data...
internal-properties.js Loading commit data...
length-or-size-description-expected.txt Loading commit data...
length-or-size-description.js Loading commit data...
property-on-console-proto-expected.txt Loading commit data...
property-on-console-proto.js Loading commit data...
protocol-works-with-different-locale-expected.txt Loading commit data...
protocol-works-with-different-locale.js Loading commit data...
query-objects-expected.txt Loading commit data...
query-objects.js Loading commit data...
regress-1075763-expected.txt Loading commit data...
regress-1075763.js Loading commit data...
regress-1078205-expected.txt Loading commit data...
regress-1078205.js Loading commit data...
regress-986051-expected.txt Loading commit data...
regress-986051.js Loading commit data...
regression-1052721-expected.txt Loading commit data...
regression-1052721.js Loading commit data...
regression-1140845-expected.txt Loading commit data...
regression-1140845.js Loading commit data...
regression-732717-expected.txt Loading commit data...
regression-732717.js Loading commit data...
regression-736302-expected.txt Loading commit data...
regression-736302.js Loading commit data...
release-object-expected.txt Loading commit data...
release-object.js Loading commit data...
remote-object-expected.txt Loading commit data...
remote-object-get-properties-expected.txt Loading commit data...
remote-object-get-properties.js Loading commit data...
remote-object.js Loading commit data...
run-script-async-expected.txt Loading commit data...
run-script-async.js Loading commit data...
runtime-disable-preserve-injected-script-expected.txt Loading commit data...
runtime-disable-preserve-injected-script.js Loading commit data...
runtime-evaluate-null-property-expected.txt Loading commit data...
runtime-evaluate-null-property.js Loading commit data...
runtime-evaluate-with-dirty-context-expected.txt Loading commit data...
runtime-evaluate-with-dirty-context.js Loading commit data...
runtime-get-properties-and-accessor-expected.txt Loading commit data...
runtime-get-properties-and-accessor.js Loading commit data...
runtime-global-lexical-scope-names-expected.txt Loading commit data...
runtime-global-lexical-scope-names.js Loading commit data...
runtime-restore-expected.txt Loading commit data...
runtime-restore.js Loading commit data...
set-max-call-stack-size-expected.txt Loading commit data...
set-max-call-stack-size.js Loading commit data...
set-or-map-entries-expected.txt Loading commit data...
set-or-map-entries.js Loading commit data...
terminate-execution-expected.txt Loading commit data...
terminate-execution.js Loading commit data...