Postmortem error replay in VS Code via a debug adapter
npm install error-replay-debug-adapterPrototype 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 and its TraceBreaker engine, while borrowing ideas from Datadog Exception Replay (VS Code plugin, tracing docs).
- adapter: generic inline debug adapter (includes shared types) fed by your data source.
- mock: mock generator that captures a Node script at the first uncaught exception.
- extension: sample VS Code extension wiring the adapter and mock data.
- 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.
> [!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.