2e11dff7f2
This CL changes how variables are resolved during debug evaluate. We now re-parse the whole script when creating a ScopeIterator. This gives us accurate scope information for all parent scopes of the closure in which we stopped. Using this information, we build blacklists of stack-allocated variables. Each context on the chain in between the closure context up to the original native context is wrapped in a debug-evaluate context with such a blacklist attached. Variable lookup for debug-evalute contexts then works as follows: 1) Look up in the materialized stack variables (stayed the same). 2) Check the blacklist to find out whether to abort further lookup. 3) Look up in the original context. Steps 1-3 is repeated for each debug-evaluate context, since they mirror the original context chain. R=ulan@chromium.org, yangguo@chromium.org Change-Id: Ied8e5786772c70566da9627ee3b7eff066fba2b4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795354 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#63666} |
||
---|---|---|
.. | ||
benchmarks | ||
cctest | ||
common | ||
debugger | ||
fuzzer | ||
inspector | ||
intl | ||
js-perf-test | ||
memory | ||
message | ||
mjsunit | ||
mkgrokdump | ||
mozilla | ||
preparser | ||
test262 | ||
torque | ||
unittests | ||
wasm-api-tests | ||
wasm-js | ||
wasm-spec-tests | ||
webkit | ||
BUILD.gn | ||
OWNERS |