• Benedikt Meurer's avatar
    [inspector] Align async task frame reporting for `await`. · d6c01059
    Benedikt Meurer authored
    The V8 Inspector was sending an additional frame as part of async stack
    traces for async functions, which pointed to the first executed `await`
    in the async function. This is leaking an implementation detail of how
    (and more precisely when) the inspector decides to collect this stack
    trace. From the users perspective the async part of the stack trace is
    supposed to capture what happened _prior to the task_ - meaning in case
    of async functions: What lead to the execution of the async function.
    This is reflected by the fact that the DevTools front-end (and the V8
    Inspector itself) performs post-processing on these async call stacks,
    removing the misleading top frame from it. But this post-processing is
    not applied consistently to all async stack traces (i.e. the Console
    message stack traces don't get this), and potentially also not applied
    consistently across consumers of the Chromium debugger backend.
    
    Instead the V8 Inspector now removes the top frame itself and thus
    reports `await` consistently with how other async tasks are reported to
    debugger front-ends.
    
    Note: This preserves backwards compatibility with old versions of
    devtools-frontend, which do post-processing (for the Call Stack) only on
    async stack traces marked with "async function", while we now mark these
    async stack traces with "await" instead (aligned with what the front-end
    is using as user visibile string anyways in the Call Stack section, and
    this matching will be updated in a separate follow up CL to look for
    "await" instead of "async function").
    
    Before: https://imgur.com/kIrWcIc.png
    After: https://imgur.com/HvZGqiP
    Fixed: chromium:1254259
    Bug: chromium:1229662
    Change-Id: I57ce051a28892177b6b96221f083ae957f967e52
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3193535
    Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarKim-Anh Tran <kimanh@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#77157}
    d6c01059
Name
Last commit
Last update
.github Loading commit data...
bazel Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.bazelrc Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.flake8 Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.mailmap Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.bazel Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
COMMON_OWNERS Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
ENG_REVIEW_OWNERS Loading commit data...
INFRA_OWNERS Loading commit data...
INTL_OWNERS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LOONG_OWNERS Loading commit data...
MIPS_OWNERS Loading commit data...
OWNERS Loading commit data...
PPC_OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
RISCV_OWNERS Loading commit data...
S390_OWNERS Loading commit data...
WATCHLISTS Loading commit data...
WORKSPACE Loading commit data...
codereview.settings Loading commit data...