wasmdbg
wasmdbg is a gdb-like debugger for WebAssembly binaries written in Rust. It currently supports all MVP version 1 binaries as well as a (currently very limited) subset of WASI.
Building and Installation
Building and installing wasmdbg requires a Rust Installation.
To install wasmdbg:
$ git clone https://github.com/benediktwerner/wasmdbg
$ cargo install --path wasmdbg
$ wasmdbg --version
To build wasmdbg:
$ git clone https://github.com/benediktwerner/wasmdbg
$ cd wasmdbg
$ cargo build
$ ./target/debug/wasmdbg --version
Features
- Run MVP version 1 binaries
- Limited subset of WASI (currently only
wasi_unstable.proc_exit) - Breakpoints:
break - Watchpoints:
watch memory/global - Single-stepping:
step - Step-over function:
next - Step-out of function:
finish - View disassembly:
disas - View program state:
context,locals,globals, valuestack,backtraceandlabelsstack - Modify program state:
set local/global/memory/stack) - Print info about the binary:
info file/imports/exports/functions/tables/memory/globals/start - Call a specific functions with any arguments:
call - Automatically read function and global names from export and names section
- Specify startup commands in a
.wasmdbg_initfile - Run a python interpreter:
python
To view all available commands use the help command.
To learn more about a specific command use help COMMAND.