• Leszek Swirski's avatar
    [frames] Make interpreted frame detection stricter · f577b2bb
    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 BytecodeArray.
    
    Change-Id: I4bafcf0f7ce3c973a2e5a312f054d72312bb8a70
    Reviewed-on: https://chromium-review.googlesource.com/535646Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#45951}
    f577b2bb
frames.cc 78.6 KB