Ubuntu下Golang如何进行调试
在Ubuntu上做Golang开发,免不了要跟调试打交道。要说调试Go程序,Delve几乎是不二之选——功能强大,用起来也顺手。下面就来聊聊具体怎么装、怎么用,一步步搞定。 安装Delve打开终端,执行下面的命令就能装好Delve: go install github.com/go-delve/de
在Ubuntu上做Golang开发,免不了要跟调试打交道。要说调试Go程序,Delve几乎是不二之选——功能强大,用起来也顺手。下面就来聊聊具体怎么装、怎么用,一步步搞定。

-
安装Delve
打开终端,执行下面的命令就能装好Delve:go install github.com/go-delve/delve/cmd/dlv@latest这条命令会把Delve装到你的
$GOPATH/bin目录下。记得确认一下这个目录在$PATH环境变量里,这样直接在终端敲dlv就能用了。 -
编译程序(带上调试信息)
调试之前需要先编译,而且得把调试信息带进去。用下面这个命令:go build -gcflags "all=-N -l" -o myprogram-N表示禁用优化,-l表示禁用内联——这两步能让Delve精准地定位代码,不容易被编译器优化绕晕。 -
启动调试会话
编译完毕后,用dlv debug命令启动调试:dlv debug myprogramDelve会挂载到你的程序上,接下来就可以用各种调试命令来“盘问”代码了。
-
常用调试命令
常用的调试命令就这些,记住它们基本够用:break(或b)设置断点;continue(或c)继续执行直到下一个断点;step(或s)单步进入函数内部;next(或n)单步跳过函数;finish执行完当前函数并返回;print(或p)打印变量值;locals显示当前栈帧的所有局部变量;args显示当前栈帧的所有参数;stack显示调用栈;quit退出调试器。 -
一个简单示例
拿一个最简单的main.go来演示:package main import "fmt" func main() { fmt.Println("Hello, World!") }按照上面的步骤安装Delve并编译后,启动调试:
dlv debug main.go接着在
main函数的第一行设个断点:break main.main然后输入
continue让程序跑起来,遇到断点就会暂停。这时可以用print查看变量值,比如:print "Hello, World!"最后用
quit退出调试器。
以上就是Ubuntu下用Golang进行调试的基本流程。如果想解锁更高级的玩法,比如条件断点、监视变量、远程调试等,可以翻翻官方文档,里面有更详细的说明。


































