07752032e6
When providing scope information (containing the value of local variables of live stack frames), decode the local variable names of all functions in a wasm module and store this in the WasmDebugInfo structure. Use these names to actually name the reported locals, instead of using the default names "param#<d>" and "local#<d>". These names are only used as fallbacks for locals which were not assigned a name. R=titzer@chromium.org,kozyatinskiy@chromium.org BUG=v8:6245 Change-Id: Ibf7d30e392248ef5590177cd8b6329239b45e018 Reviewed-on: https://chromium-review.googlesource.com/548495 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46379}
331 lines
7.8 KiB
Plaintext
331 lines
7.8 KiB
Plaintext
Tests stepping through wasm scripts
|
|
Installing code an global variable.
|
|
Calling instantiate function.
|
|
Waiting for two wasm scripts to be parsed.
|
|
Ignoring script with url v8://test/callInstantiate
|
|
Got wasm script: wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-0
|
|
Requesting source for wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-0...
|
|
Got wasm script: wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1
|
|
Requesting source for wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1...
|
|
func $wasm_A
|
|
nop
|
|
nop
|
|
end
|
|
|
|
func $wasm_B (param i32)
|
|
loop
|
|
get_local 0
|
|
if
|
|
get_local 0
|
|
i32.const 1
|
|
i32.sub
|
|
set_local 0
|
|
call 0
|
|
br 1
|
|
end
|
|
end
|
|
end
|
|
|
|
Setting breakpoint on line 7 (on the setlocal before the call), url wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1
|
|
{
|
|
columnNumber : 6
|
|
lineNumber : 7
|
|
scriptId : <scriptId>
|
|
}
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:7:6: >set_local 0
|
|
at wasm_B (7:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":4} (Object)
|
|
stack: {"0":3} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:8:6: >call 0
|
|
at wasm_B (8:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":3} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-0:1:2: >nop
|
|
at wasm_A (1:2):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
stack: {} (Object)
|
|
at wasm_B (8:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":3} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepOver called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-0:2:2: >nop
|
|
at wasm_A (2:2):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
stack: {} (Object)
|
|
at wasm_B (8:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":3} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepOut called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:9:6: >br 1
|
|
at wasm_B (9:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":3} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepOut called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:7:6: >set_local 0
|
|
at wasm_B (7:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":3} (Object)
|
|
stack: {"0":2} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepOver called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:8:6: >call 0
|
|
at wasm_B (8:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":2} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepOver called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:9:6: >br 1
|
|
at wasm_B (9:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":2} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.resume called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:7:6: >set_local 0
|
|
at wasm_B (7:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":2} (Object)
|
|
stack: {"0":1} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:8:6: >call 0
|
|
at wasm_B (8:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":1} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-0:1:2: >nop
|
|
at wasm_A (1:2):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
stack: {} (Object)
|
|
at wasm_B (8:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":1} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepOut called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:9:6: >br 1
|
|
at wasm_B (9:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":1} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:1:2: >loop
|
|
at wasm_B (1:2):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":1} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:2:4: >get_local 0
|
|
at wasm_B (2:4):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":1} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:3:4: >if
|
|
at wasm_B (3:4):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":1} (Object)
|
|
stack: {"0":1} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:4:6: >get_local 0
|
|
at wasm_B (4:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":1} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:5:6: >i32.const 1
|
|
at wasm_B (5:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":1} (Object)
|
|
stack: {"0":1} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:6:6: >i32.sub
|
|
at wasm_B (6:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":1} (Object)
|
|
stack: {"0":1,"1":1} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:7:6: >set_local 0
|
|
at wasm_B (7:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":1} (Object)
|
|
stack: {"0":0} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:8:6: >call 0
|
|
at wasm_B (8:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":0} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-0:1:2: >nop
|
|
at wasm_A (1:2):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
stack: {} (Object)
|
|
at wasm_B (8:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":0} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-0:2:2: >nop
|
|
at wasm_A (2:2):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
stack: {} (Object)
|
|
at wasm_B (8:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":0} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-0:3:0: >end
|
|
at wasm_A (3:0):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
stack: {} (Object)
|
|
at wasm_B (8:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":0} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.stepInto called
|
|
Paused at wasm://wasm/wasm-0c10a5fe/wasm-0c10a5fe-1:9:6: >br 1
|
|
at wasm_B (9:6):
|
|
- scope (global):
|
|
-- skipped
|
|
- scope (local):
|
|
locals: {"arg#0":0} (Object)
|
|
stack: {} (Object)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped
|
|
Debugger.resume called
|
|
exports.main returned!
|
|
Finished!
|