https://github.com/dankeboy36/error-replay-debug-adapter
Postmortem error replay in VS Code via a debug adapter
https://github.com/dankeboy36/error-replay-debug-adapter
debug-adapter debug-adapter-protocol vscode
Last synced: 2 months ago
JSON representation
Postmortem error replay in VS Code via a debug adapter
- Host: GitHub
- URL: https://github.com/dankeboy36/error-replay-debug-adapter
- Owner: dankeboy36
- License: mit
- Created: 2025-12-14T17:26:09.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-12-14T21:22:51.000Z (3 months ago)
- Last Synced: 2025-12-17T07:23:55.571Z (3 months ago)
- Topics: debug-adapter, debug-adapter-protocol, vscode
- Language: TypeScript
- Homepage:
- Size: 2.81 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Error Replay Debug Adapter (PoC)
Prototype VS Code debug adapter that replays post-mortem errors through the native debug UI (Call Stack, Variables, restart frame, breakpoints). There is no live engine: the adapter consumes a simple async API that loads a stack trace and lazily loads variables per frame.

This PoC explores replaying ESP32 crashes by decoding backtraces/coredumps with [ESP Exception Decoder](https://github.com/dankeboy36/esp-exception-decoder) and its [TraceBreaker](https://github.com/dankeboy36/trbr) engine, while borrowing ideas from Datadog Exception Replay ([VS Code plugin](https://docs.datadoghq.com/developers/ide_plugins/vscode/#exception-replay), [tracing docs](https://docs.datadoghq.com/tracing/error_tracking/exception_replay/)).
## Packages
- [`adapter`](packages/adapter/README.md): generic inline debug adapter (includes shared types) fed by your data source.
- [`mock`](packages/mock/README.md): mock generator that captures a Node script at the first uncaught exception.
- [`extension`](packages/extension/README.md): sample VS Code extension wiring the adapter and mock data.
## Quick start
- Clone, open in VS Code, then `npm install`.
- Open Debug view (Ctrl/⌘+Shift+D), choose the `Run Extension` config, and start (F5).
- In the test workspace, run the `Error Replay: Generate Mock Error` command, pick a sample JS module (or any JS that throws soon), and wait for the JSON fixture to be generated.
- Generated fixtures land in `fixtures/generated/` under your workspace; a CodeLens will appear at the error line once the file is created.
- A CodeLens appears at the error location: click it to replay. The debugger stops just before the error; restart frame to walk earlier frames. Continue jumps to the next recorded frame or breakpoint; step in/out are no-ops; evaluation is unsupported but you can watch variables, scopes, and frame metadata. If multiple errors exist for one location, you’ll pick via Quick Pick.
## Notes
> [!NOTE]
> Stepping moves across recorded frames; restart frame is supported. Evaluate/setVariable are intentionally not supported—this is a replay, not a live debugger.
- Variables are fetched lazily per snapshot; frames can be deemphasized via skip globs.
- See each package README for details and API surface.