You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+18-15Lines changed: 18 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,9 +12,9 @@ A modern, feature-rich GDB server/proxy written in Rust, designed to enhance emb
12
12
**rsgdb** aims to bridge the gap between traditional GDB debugging and modern embedded development needs by providing:
13
13
14
14
-**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)
18
18
-**Backend Flexibility**: Support for multiple debug probes (probe-rs, OpenOCD, pyOCD)
19
19
-**Modern Architecture**: Built with Rust for safety, performance, and reliability
20
20
@@ -26,7 +26,8 @@ A modern, feature-rich GDB server/proxy written in Rust, designed to enhance emb
- ▶️ **`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)
30
31
- ⚡ **`rsgdb flash`** — run a configured external flash tool (`[flash].program` with `{image}` substitution; OpenOCD/probe-rs/etc.)
31
32
- 🧵 **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).
32
33
- 🧪 **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
35
36
36
37
### Planned
37
38
- 📊 Enhanced logging with filtering and export (JSON, CSV)
- 🎯 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)
42
42
- 🖥️ 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)
44
44
45
45
## Continuous integration
46
46
@@ -113,10 +113,13 @@ Create a `rsgdb.toml` configuration file:
113
113
```toml
114
114
[proxy]
115
115
listen_port = 3333
116
-
backend = "openocd"
117
116
target_host = "localhost"
118
117
target_port = 3334
119
118
119
+
[backend]
120
+
# Used for logging / future integration; the proxy connects over TCP to target_host:target_port
121
+
backend_type = "openocd"
122
+
120
123
[logging]
121
124
level = "debug"
122
125
format = "json"
@@ -195,15 +198,15 @@ This README and [CONTRIBUTING.md](CONTRIBUTING.md). Design notes: [docs/ADR-001-
0 commit comments