wasm-edit 0.1.5

Edit and instrument already compiled Wasm binaries
Documentation
# wasm-edit

> Edit and instrument already compiled Wasm binaries

## Install

```
cargo install wasm-edit
```

## Edit the main memory

Change the initial memory amount (in pages):
```
wasm-edit edit-memory --initial-memory=1000 < input.wasm > output.wasm
```

## Trace calls to `memory.grow`

Trace calls to the `memory.grow` instruction:
```
wasm-edit instrument-memory < input.wasm > output.wasm
```

Requires Wasi, but doesn't require any change on the host.
Tested with Rust and theoretically working with C/C++ (clang).

## Coredump generation

Add the coredump generation:

```
wasm-edit coredump < input.wasm > output.wasm
```

When WebAssembly encounters a `unreachable` instruction it will unwind
the stack, collect informations and generate a coredump.

The coredump struct is stored at a fixed location, this might conflict with other transformations like asyncify.

Collect the entire WebAssembly memory and use [wasmgdb] to analyze.

## Running into stack overflow

Some Wasm binaries have very recursive flow of control, increase the maximum stack size:
```
$ ulimit -s 160000
```

[wasmgdb]: https://github.com/xtuc/wasmgdb