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 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 Extensionconfig, and start (F5). - In the test workspace, run the
Error Replay: Generate Mock Errorcommand, 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.
