bytecodealliance / bytecodealliance/wasmtime
Integrating a gdbserver and record/replay functionality into wasmtime
- 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
Assessment
This issue has not been assessed yet.