bytecodealliance / bytecodealliance/wasmtime

Integrating a gdbserver and record/replay functionality into wasmtime

Open
#6,866 7 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
18.6k
Forks
1.8k
Avg merge
1d 18h
Merged PRs (30d)
126

Description

#### Feature
- let wasmtime expose a gdbserver
- Also allow record/replay out-of-the-box to support reversible debugging.

#### Implementation
I have some ideas on how this might be doable, but I am not familiar enough with wasmtime to make an accurate assessment.

- adding a gdbserver could be done via [gdbstub](https://docs.rs/gdbstub/0.6.6/gdbstub/)
- recording would require storing the results from wasi calls and reinstating the runtime state on replay.

I would be interested in implementing this, however, due to the complexity of such a feature paired with the deep understanding required for successful implementation, I would need guidance/mentoring.
#### Benefit
- the current debugging has the wasmtime runtime "in the way" of the debugger.
- recording in the wasm-runtime level allows for optimizations not possible when using `rr record wasmtime run ...`
- adding reversible debugging capability to wasmtime would also indirectly add the capability to every language that can compile to wasm

#### Alternatives

Improve the rr-records-wasmtime-running-wasm story directly.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.