1 unstable release
0.1.0 | Oct 18, 2019 |
---|
#968 in WebAssembly
165KB
4.5K
SLoC
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
,backtrace
andlabels
stack - 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_init
file - Run a python interpreter:
python
To view all available commands use the help
command.
To learn more about a specific command use help COMMAND
.
Dependencies
~5–13MB
~170K SLoC