• Leszek Swirski's avatar
    [frames] Make interpreted frame detection stricter (reland) · b7a036a6
    Leszek Swirski authored
    When iterating over stack frames, make the interpreted frame detection
    require that the frame header contains the bytecode array.
    
    Currently, the stack frame iterator supports bytecode handlers that
    don't create stack frames by checking if the top of the stack (i.e. the
    return address) is the interpreter entry trampoline. However, optimized
    code tail called from the interpreter entry trampoline can move the
    stack pointer without clearing the stack, which means it can end up with
    a pointer into the interpreter entry trampoline on the top of its stack
    (in an uninitialized value), and be interpreted as an interpreted frame.
    
    To avoid such optimized code frames being interpreted as interpreted
    frames, we now additionally test the frame header, to see if it contains
    a valid pointer to a BytecodeArray.
    
    Reland of https://chromium-review.googlesource.com/c/535646/
    
    Change-Id: Iefbf305c9e4b43bebd2fc111663671d2b675e64a
    Reviewed-on: https://chromium-review.googlesource.com/536935Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#45959}
    b7a036a6
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles 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...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...