1 unstable release

0.1.0 Oct 18, 2019

#968 in WebAssembly

MIT/Apache

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, value stack, backtrace and labels 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