golang对gdb有很好的支持。
首先要对go程序进行编译,例如main.go,可以使用指令 go build -gcflags "-N -l" main.go
之后会生成一个名字为main的二进制可执行文件。
然后可以使用gdb main指令,进入调试模式。如果该程序需要加载一些具有特殊权限的文件,可以使用sudo gdb main指令。
如果该程序运行时,需要指定一些参数,可以用 “set args + 参数”指令进行参数指定。另外设定成功以后,可以使用show args进行参数查看。
参数如果包含参数名和参数值,中间需用“=”连接,如果具有多个参数名和参数值,那么每对参数名和参数值中间用空格分开,否则可能只有第一对参数名和参数值生效。
进入调试以后,用“r”进行运行,ctrl+c可以进行中断,“n”执行下一条程序,“break n”进行断点指定(这个位置的n表示第n条程序语句),“c”继续运行,“l”可以列出目前程序执行处的10条程序语句。
如果存在多个源文件,可以使用“break 文件名:n”来指定哪个文件的第几行,例如“break main.go:759”。