• clemensh's avatar
    [wasm] Implement stepping in wasm code · 3dea55b4
    clemensh authored
    Implement stepping by remembering the current step action in the wasm
    interpreter handle in WasmDebugInfo, and using it when continuing
    execution in the interpreter.
    The control flow is as follows: After module compilation, the user sets
    a breakpoint in wasm. The respective function is redirected to the
    interpreter and the breakpoint is set on the interpreter. When it is
    hit, we notify all debug event listeners, which might prepare stepping.
    When returning from these listeners, before continuing execution, we
    check whether stepping was requested and continue execution in the
    interpreter accordingly.
    
    Stepping from Wasm to JS and vice versa will be implemented and tested
    in a follow-up CL. Testing this requires breakpoints and stepping in
    Wasm to be exposed via the inspector interface, such that we can write
    an inspector test. This mixed JS-Wasm-execution is hard to set up in a
    cctest.
    
    R=titzer@chromium.org, yangguo@chromium.org
    BUG=
    
    Review-Url: https://codereview.chromium.org/2649533002
    Cr-Commit-Position: refs/heads/master@{#42624}
    3dea55b4
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
promises-aplus Loading commit data...
simdjs Loading commit data...
test262 Loading commit data...
unittests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
bot_default.gyp Loading commit data...
bot_default.isolate Loading commit data...
default.gyp Loading commit data...
default.isolate Loading commit data...
optimize_for_size.gyp Loading commit data...
optimize_for_size.isolate Loading commit data...
perf.gyp Loading commit data...
perf.isolate Loading commit data...