Skip to content

Commit d9d6569

Browse files
author
Alex J Lennon
committed
docs: align README with proxy/SVD/replay reality
- Fix config example: backend_type under [backend], not [proxy] - Current vs Planned: replay, SVD fields/enums; narrow roadmap duplicates - Clarify goals (breakpoints/state); diagram matches decode-only + TCP forward Made-with: Cursor
1 parent 732bd68 commit d9d6569

1 file changed

Lines changed: 18 additions & 15 deletions

File tree

README.md

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ A modern, feature-rich GDB server/proxy written in Rust, designed to enhance emb
1212
**rsgdb** aims to bridge the gap between traditional GDB debugging and modern embedded development needs by providing:
1313

1414
- **Enhanced Visibility**: Comprehensive logging of all GDB protocol traffic with structured output
15-
- **Advanced Breakpoint Management**: Named breakpoints, conditional expressions, and intelligent hardware/software optimization
16-
- **State Inspection**: Memory snapshots, register tracking, and peripheral decoding using SVD files
17-
- **Session Management**: Record, replay, and share debugging sessions
15+
- **Advanced Breakpoint Management** (roadmap): Named breakpoints, conditional expressions, and hardware/software optimization — config and parsing exist; the proxy today **forwards** breakpoint RSP unchanged
16+
- **State Inspection** (partial today): Peripheral/register **labels** for memory traffic via CMSIS-SVD in logs; snapshots / deep state are not implemented yet
17+
- **Session Management**: JSONL **recording** and **`rsgdb replay`** mock-backend playback (see below)
1818
- **Backend Flexibility**: Support for multiple debug probes (probe-rs, OpenOCD, pyOCD)
1919
- **Modern Architecture**: Built with Rust for safety, performance, and reliability
2020

@@ -26,7 +26,8 @@ A modern, feature-rich GDB server/proxy written in Rust, designed to enhance emb
2626
- 🚧 Structured logging infrastructure
2727
- 🚧 Configuration system
2828
- 💾 **Session recording (rsgdb-record v1)** — ordered RSP trace as JSON Lines (`.jsonl`)
29-
- 📝 **SVD annotation (read-only)** — CMSIS-SVD file → log labels for memory RSP (`m` / `M`) as `Peripheral.REGISTER` (`target: rsgdb::svd`, debug level)
29+
- ▶️ **`rsgdb replay`** — load a recording and serve a **mock TCP backend** for one client (order-preserving playback / tests)
30+
- 📝 **SVD annotation (read-only)** — CMSIS-SVD → log labels for memory RSP (`m` / `M`): `Peripheral.REGISTER`, overlapping **fields**, and enumerated **variant names** where present (`target: rsgdb::svd`, debug)
3031
-**`rsgdb flash`** — run a configured external flash tool (`[flash].program` with `{image}` substitution; OpenOCD/probe-rs/etc.)
3132
- 🧵 **RTOS RSP decode / log (Zephyr-first)** — thread-extension packets are decoded and logged at `target: rsgdb::rtos` (debug). Thread *data* comes from your stub (e.g. OpenOCD **Zephyr** RTOS awareness); other RTOSes use the same GDB RSP when the stub implements them (see below).
3233
- 🧪 **CI + local E2E smoke**`gdbserver``rsgdb``gdb` (batch), `scripts/e2e_gdb_smoke.sh` (Ubuntu job in **CI** workflow). **Zephyr `native_sim`** E2E (`scripts/e2e_zephyr_native_sim.sh`) runs in the **Zephyr E2E** workflow when those scripts/app change, on `main`/`develop`, weekly, or manually. See [CONTRIBUTING.md](CONTRIBUTING.md).
@@ -35,12 +36,11 @@ A modern, feature-rich GDB server/proxy written in Rust, designed to enhance emb
3536

3637
### Planned
3738
- 📊 Enhanced logging with filtering and export (JSON, CSV)
38-
- 🎯 Advanced breakpoint management (named, conditional, grouped)
39-
- 🔍 State tracking and visualization
40-
- 💾 Session **replay** tooling (mock backend / automated playback)
41-
- 🔌 Multiple backend support (probe-rs, OpenOCD)
39+
- 🎯 Advanced breakpoint management wired into the proxy (today: config + RSP parse; not a full manager on the wire)
40+
- 🔍 State tracking and visualization (beyond SVD-annotated memory logs)
41+
- 🔌 Native / non-TCP backends and richer probe integration ([#9](https://github.com/DynamicDevices/rsgdb/issues/9); CLI `backend_type` is reserved)
4242
- 🖥️ Terminal UI (TUI) for interactive debugging
43-
- 📝 Richer SVD decoding (fields, enums) and correlation with recordings
43+
- 📝 SVD: decode register **values** to enum names on the wire, and **correlation** with session recordings ([#11](https://github.com/DynamicDevices/rsgdb/issues/11) follow-ups)
4444

4545
## Continuous integration
4646

@@ -113,10 +113,13 @@ Create a `rsgdb.toml` configuration file:
113113
```toml
114114
[proxy]
115115
listen_port = 3333
116-
backend = "openocd"
117116
target_host = "localhost"
118117
target_port = 3334
119118

119+
[backend]
120+
# Used for logging / future integration; the proxy connects over TCP to target_host:target_port
121+
backend_type = "openocd"
122+
120123
[logging]
121124
level = "debug"
122125
format = "json"
@@ -195,15 +198,15 @@ This README and [CONTRIBUTING.md](CONTRIBUTING.md). Design notes: [docs/ADR-001-
195198
┌─────────────────────────────────────┐
196199
│ rsgdb Proxy Core │
197200
│ ┌──────────┐ ┌─────────────────┐ │
198-
│ │ Protocol │ │ Breakpoint Mgr │ │
199-
│ │ Parser │ │ │ │
201+
│ │ Protocol │ │ Breakpoints │ │
202+
│ │ Parser │ │ (roadmap) │ │
200203
│ └──────────┘ └─────────────────┘ │
201204
│ ┌──────────┐ ┌─────────────────┐ │
202-
│ │ Logger │ │ State Tracker │ │
203-
│ │ │ │ │ │
205+
│ │ Logger │ │ SVD / RTOS log │ │
206+
│ │ │ │ (decode only) │ │
204207
│ └──────────┘ └─────────────────┘ │
205208
└──────────┬──────────────────────────┘
206-
Enhanced RSP
209+
TCP (RSP bytes forwarded)
207210
208211
┌──────────────┐
209212
│Debug Backend │

0 commit comments

Comments
 (0)