Debugging Go programs with Delve
summary
Delve is a Go-specific debugger that compiles programs without optimizations, uses ptrace on Linux (and Darwin/Windows backends) and exposes a JSON-RPC API for editor/front-end integration (VS Code, JetBrains, Emacs). It follows goroutines across thread context switches, understands interfaces/slices/maps, auto-stops on panic, can attach to running processes, inspect core dumps and run lightweight traces. Pluggable backends let it leverage gdb/LLDB or a record-replay backend (Mozilla rr) to enable deterministic time-travel debugging.
AI-written summary · about
chapters (17)
- 0:00Introduction and core OS
- 3:01Introduction to delve
- 5:35Delve architecture and goals
- 8:31Design philosophy
- 10:20API and remote debugging
- 13:06IDE and UI integration
- 16:18Backend plugins and replay
- 19:03Why delve for go
- 20:45Debugging concurrency
- 22:22Go type support
- 24:57The go runtime scheduler
- 31:23Compilation and optimizations
- 33:37Dwarf debug information
- 39:05Operating system internals
- 40:17Delve vs other debuggers
- 43:34Basic command usage
- 45:53Tips, tricks, and conclusion
related talks
38mProgrammable debuggers and the Linux kernel (drg...
01h 29mModern Linux C++ Debugging Tools - Under the Covers
58m“Debugging Linux C++”
46mReal World Debugging with eBPF
32mCross Debugging on Linux : A History, Current State of the Art and Coming Improvements
01h 29mMore GDB wizardry and 8 other essential Linux application debugging tools
25mDebugging memory issues with Valgrind and GDB
18mFavourite GDB developers tricks
