Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/benediktwerner/wasmdbg
WASM debugger written in Rust
https://github.com/benediktwerner/wasmdbg
Last synced: about 7 hours ago
JSON representation
WASM debugger written in Rust
- Host: GitHub
- URL: https://github.com/benediktwerner/wasmdbg
- Owner: benediktwerner
- License: apache-2.0
- Created: 2019-06-28T02:17:42.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-03-06T11:12:37.000Z (over 3 years ago)
- Last Synced: 2024-10-19T14:03:40.061Z (30 days ago)
- Language: Rust
- Size: 305 KB
- Stars: 19
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# 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 or installing `wasmdbg` requires a [Rust Installation](https://www.rust-lang.org/).
To install `wasmdbg`:
```
$ cargo install wasmdbg
$ wasmdbg --version
```To build `wasmdbg` from source:
```
$ 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`.