在Ubuntu上调试Golang程序,常用工具为Delve(官方推荐)和GDB,以下是具体步骤:
一、使用Delve调试(推荐)
1. 安装Delve
go install github.com/go-delve/delve/cmd/dlv@latest
确保$GOPATH/bin在$PATH中,可通过dlv version验证安装。
2. 编译程序(带调试符号)
go build -gcflags "all=-N -l" -o myprogram main.go
-N -l关闭优化和内联,便于调试。
3. 启动调试会话
dlv exec ./myprogram
或直接调试文件:
dlv debug main.go
4. 常用调试命令
- 设置断点:
break main.go:10(在指定行设置断点) - 运行程序:
continue(运行至下一个断点) - 单步执行:
next(不进入函数)/step(进入函数) - 查看变量:
print variable_name - 退出调试:
quit
二、使用GDB调试(通用型)
1. 安装GDB
sudo apt install gdb
2. 编译程序(带调试符号)
go build -gcflags "all=-N -l" -o myprogram main.go
3. 启动GDB
gdb ./myprogram
4. 常用调试命令
- 设置断点:
break main.go:10或b main.main - 运行程序:
run - 单步执行:
next(不进入函数)/step(进入函数) - 查看变量:
print variable_name - 查看调用栈:
backtrace或bt - 退出调试:
quit
三、其他工具
- IDE集成调试:如VS Code安装Go扩展后,可直接通过图形界面设置断点、查看变量(需配置
launch.json)。 - 性能分析:使用
pprof工具(需在代码中导入net/http/pprof)。
注意事项
- Delve是Go官方推荐工具,对Go语言特性(如Goroutine)支持更完善。
- GDB需配合
-gcflags生成调试符号,且部分Go特性支持有限。
根据需求选择工具,Delve更适合Go项目,GDB则适用于需要通用调试的场景。