delve 是 go 官方推荐的调试器,支持本地/远程/测试调试,可设断点、查变量、追踪协程与内存;安装用 go install,调试需保留符号表,配合 ide 效率更高。

Delve 是 Go 官方推荐的调试器,比传统 print 调试更高效、精准,尤其适合追踪变量生命周期、协程状态和内存行为。
安装与基础启动
Delve 支持本地调试、远程调试和测试调试。安装只需:
- 运行 go install github.com/go-delve/delve/cmd/dlv@latest(Go 1.21+)
- 确保 $GOPATH/bin 在系统 PATH 中
- 在项目根目录执行 dlv debug 启动调试会话;若调试已编译二进制,用 dlv exec ./myapp
断点设置与变量查看
调试中常用命令简洁直接:
- b main.main 或 b utils.go:15 设置函数入口或行号断点
- p username 打印变量值;p &user 查看地址;p user.Name 访问结构体字段
- vars 列出当前作用域所有局部变量;locals 更聚焦于函数内变量
- 进入函数后可用 stack 查看调用栈,确认变量所属上下文
协程与内存相关追踪
Go 的并发模型让变量追踪更复杂,Delve 提供专属支持:
立即学习“go语言免费学习笔记(深入)”;
- goroutines 列出全部 goroutine 及其状态(running / waiting / idle)
- goroutine
bt 切换到指定 goroutine 并查看其堆栈,进而检查该协程内的变量值 - memstats 查看实时内存统计,辅助判断变量是否被意外持有导致泄漏
- 对疑似泄漏的变量,可用 print runtime.ReadMemStats 获取详细分配信息
调试技巧与避坑提示
实际使用中几个关键细节常影响调试效率: