gdbforge – Vim-Inspired Terminal UI for GDB
Open-source terminal debugger front-end for GDB and Delve — multi-pane Vim-style workspace with Lua automation for embedded Linux (remotegdb), Zynq MPSoC, STM32 bare-metal, and Linux kernel kgdb.
My contact details are:
Overview
gdbforge is an open-source terminal debugger front-end for GDB (and optionally Delve for Go).
It adds a Vim-inspired multi-pane workspace — source, GDB console, IO, threads, call stack, and breakpoints — in one keyboard-driven session, without replacing your IDE.
The project includes a Lua script catalog that automates common bring-up steps: spawn J-Link or OpenOCD, deploy to a board over scp, start gdbserver, or break into kgdb over UART. Each workflow is a small, editable script — not a monolithic IDE.
Responsibilities
- Designed and implemented a keyboard-first TUI with normal / insert / command modes, pane splits, and layout presets.
- Built GDB and Delve integration behind a single UI (
-g gdb/-g dlv). - Developed Lua automation scripts for four platform families: embedded Linux, Zynq MPSoC, STM32, and kernel kgdb.
- Implemented program I/O routing — internal
:b iopane vs external terminal for full TUI / curses apps. - Organized scripts under
lua/with per-platform READMEs and MkDocs guides for copy-paste recipes. - Added background probe spawning (J-Link, OpenOCD) so the Code pane stays responsive during attach.
Achievements
- Delivered a working cgdb-like alternative with richer structure for threads, breakpoints, and automation.
- Shipped one-command board debug via
:lua remotegdb— deploy, gdbserver, and attach in a single step. - Published platform guides for MPSoC (A53/R5), STM32F405, embedded Linux I/O modes, and kernel kgdb.
- Kept workflows user-editable — each Lua script is ~100 lines with env defaults at the top.
- Same UI covers local apps, remote gdbserver, bare-metal probes, and kernel debug.
Tech Stack
- Language: Go (application), Lua (workflows)
- Debuggers: GDB, Delve
- Probes: J-Link GDB Server, ST-Link, OpenOCD, Digilent HS2
- Targets: Embedded Linux (gdbserver), Zynq UltraScale+ MPSoC, STM32F405, Linux kernel (kgdb)
- Docs: MkDocs, GitHub Pages
- Build:
go build ./cmd/gdbforge
Documentation & Source Code
| Resource | Link |
|---|---|
| GitHub repo | github.com/yairgd/gdbforge |
| Docs site | yairgd.github.io/gdbforge |
| Embedded Linux guide | EMBEDDED_LINUX_DEBUG |
| MPSoC guide | MPSOC_DEBUG |
| STM32 guide | STM32_DEBUG |
| Kernel kgdb guide | KERNEL_KGDB |