Description[wasm] Implement stepping in wasm code
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}
Committed: https://chromium.googlesource.com/v8/v8/+/3dea55b41379a606d7a1f5f33bbdda69e440f2b6
Patch Set 1 #Patch Set 2 : Rebase #Patch Set 3 : Fix win compile error #Patch Set 4 : Add TODOs #
Total comments: 12
Patch Set 5 : Rebase to Yangs CL and address Ben's comments #
Total comments: 3
Patch Set 6 : Move condition and code into loop #Patch Set 7 : Rearrange code inside the loop #Patch Set 8 : Rebase #
Messages
Total messages: 46 (37 generated)
|