kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

Debugger and Debug Info (planned work)

This roadmap consolidates the remaining work across the interactive JIT debugger (kit dbg) and the DWARF producer/consumer. Designs live one level up: ../DBG.md covers the KitDebugSession architecture, the KitDbgOs host vtable, software breakpoints, and displaced single-step; ../DWARF.md covers the producer pipeline and the kit_dwarf_* consumer surface. The host-native sampling profiler (kit prof), which reuses this debugger's signal infrastructure, has its own roadmap in PROF.md. This document is forward-looking: it states the baseline only as a starting point, then enumerates the open gaps, their rationale, and the next steps. Shipped items are noted as "done (baseline)".

Baseline

What already works and is not re-planned here (the sections below are the work that remains):

1. Bring x64 / rv64 debug sessions to full parity

The non-aarch64 lifters exist (per baseline) but test/dbg/run.sh self-skips on any host that is not aarch64. The remaining work is proving the non-aa64 sessions are real, not writing new lifters.

2. Displaced single-step: remaining instruction coverage

The lifters cover the common PC-relative families per arch. One known decline remains, plus general hardening:

3. Direct dbg unit + smoke tests

Much verification has gone through transcript tests; the low-level primitives still lack focused unit coverage. Following red-green TDD (see ../TESTING.md):

4. REPL polish and machine-readable mode

Shared REPL work that improves usability and unblocks tooling/IDE frontends:

5. Toy and C REPL frontends

The Toy frontend drives the debugger as the first REPL language; C support is the larger follow-on. Design detail lives in ../FRONTENDS.md.

Toy result formatting and structured values:

C as a REPL language (after the Toy experience is solid):

6. DWARF producer/consumer gaps

Producer and consumer are colocated under src/debug/ but share only the wire format (dwarf_defs.h); that boundary must hold for any new work. The remaining gaps:

Explicitly deferred until a client needs them (carried forward, not planned):

The host-native sampling profiler (kit prof) that reuses this debugger's signal infrastructure has moved to its own roadmap: see PROF.md.

7. Bigger follow-ons (cross-cutting)