在 Linux 下用 Go(Golang) 调试程序,常见且实用的方式有以下几种,从简单到专业逐步介绍:
fmt.Printlnfmt.Println("debug:", x, y)
logimport "log"
log.Println("value:", x)
✅ 优点:简单
❌ 缺点:不够灵活,生产代码不推荐
Delve 是 Go 最常用、最专业的调试工具。
go install github.com/go-delve/delve/cmd/dlv@latest
确认安装:
dlv version
dlv debug main.go
进入调试界面后常用命令:
break main.main # 设置断点
continue # 运行
next # 单步(不进入函数)
step # 单步(进入函数)
print x # 打印变量
locals # 查看局部变量
exit # 退出
dlv attach <pid>
适合调试:
dlv exec ./app --headless --listen=:2345 --api-version=2
本地 VS Code / GoLand 连接即可。
launch.json{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}"
}
适合:
import _ "net/http/pprof"
go func() {
http.ListenAndServe("0.0.0.0:6060", nil)
}()
go tool pprof http://localhost:6060/debug/pprof/goroutine
| 场景 | 推荐方式 |
|---|---|
| 逻辑错误 | Delve / VS Code |
| 线上问题 | dlv attach / pprof |
| 性能问题 | pprof |
| 快速验证 | fmt/log |
-ldflags "-s -w" 调试如果你愿意,可以告诉我:
我可以直接给你一套最合适的调试配置。