Golang在Ubuntu上如何进行调试

在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:10b main.main
  • 运行程序run
  • 单步执行next(不进入函数)/ step(进入函数)
  • 查看变量print variable_name
  • 查看调用栈backtracebt
  • 退出调试quit

三、其他工具

  • IDE集成调试:如VS Code安装Go扩展后,可直接通过图形界面设置断点、查看变量(需配置launch.json)。
  • 性能分析:使用pprof工具(需在代码中导入net/http/pprof)。

注意事项

  • Delve是Go官方推荐工具,对Go语言特性(如Goroutine)支持更完善。
  • GDB需配合-gcflags生成调试符号,且部分Go特性支持有限。

根据需求选择工具,Delve更适合Go项目,GDB则适用于需要通用调试的场景。