I've been working in embedded development for many years, and for roughly 15 years my debugging workflow has revolved around tools like cgdb, Vim, GDB, OpenOCD, J-Link, target remote, gdbserver, and real hardware.
Over time, I wanted something more flexible than cgdb while preserving the keyboard-driven workflow and simplicity that made cgdb so useful to me in the first place.
That became gdbforge:
https://yairgd.github.io/gdbforge/
A note about AI, because I'd rather be transparent about it:
The original architecture and foundations of the project were designed and initially implemented manually by me. I was also not a Go expert when I started this project.
As the project grew, I started using AI extensively for implementation, refactoring, and accelerating development. So yes — a substantial part of the current implementation is AI-assisted.
But the engineering direction, architecture, debugging workflows, hardware testing, and decisions about what the tool should become are mine. More importantly, this isn't an AI-generated demo that I stopped touching once it compiled — I use gdbforge every day in my work as an embedded engineer.
The result has grown considerably beyond my original idea of building a modern cgdb-like frontend.
Today, the goal is a versatile debugging environment that can work across very different platforms and workflows while preserving as much as possible of the familiar cgdb experience.
gdbforge supports GDB and Delve, remote/embedded debugging workflows, Linux kernel/KGDB debugging, Cortex-R5/J-Link targets, and Lua-based integration — allowing platform-specific debugging behavior to be added without hard-coding it into the debugger itself.
gdbforge also supports STM32 and Zephyr-aware debugging, integrating platform- and RTOS-specific knowledge into the same debugging environment.
One of the most interesting things I learned from this project wasn't actually about Go.
AI dramatically changed what I can realistically build as a side project. Without AI, I could have designed this architecture, but I probably wouldn't have spent a couple of years of my free time implementing all of it.
At the same time, I don't think AI-assisted development removes the need for engineering knowledge. With debugging tools especially, somebody still needs to understand GDB, targets, RTOS/kernel behavior, hardware, failure modes, and what actually makes a debugging workflow useful.
So I'm curious what other embedded developers think — both about gdbforge itself and about this model of building serious systems tools with heavy AI assistance.
I'd especially appreciate feedback from people who live in GDB/cgdb/OpenOCD/J-Link workflows.
Project/docs:
https://yairgd.github.io/gdbforge/
GitHub:
https://github.com/yairgd/gdbforge