Think gdb for WebAssembly
cargo install wasmgdb
Use [wasm-coredump-rewriter] to transform your module and, once WebAssembly traps, collect the WebAssembly memory and analyze the coredump.
wasmgdb source.wasm coredump.data
bt
Display the stack trace.
f <#>
Selects a stack frame and display informations.
p <expr>
Inspect the content of a variable.
Requires to select the frame with f
first.
p *<expr>
Inspect the content of a variable after dereferencing it.
Requires to select the frame with f
first.
p/s <expr>
Print the variable as string.
Requires to select the frame with f
first.
p (<type>) <expr>
Print the content of
x/<number> <hex-addr>
Examine the memory address at
x/<number>s <hex-addr>
Examine the memory address at
find <expr>
Find the
Usage:
find <start-addr>, <end-addr>, <expr>
find <expr>
info types
List all defined types.
info locals
List local values (includes Wasm func arguments).
info symbol <funcidx>
Get informations about the function at the given index.
info imports
List WebAssembly module's imported functions from the host.
info functions
List all defined functions.
info globals
List globals.
<object>-><member>
(<type>) <hex-addr>
"<string>"