• 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
wasm-compiler.cc 143 KB