runsisi's

technical notes

使用 GoLand 调试 Go 程序

2019-04-17 runsisigolang

命令行上对 Go 程序进行调试在变量打印等方面的友好性相比图形界面还是要差很多,而且 dlv 相比 gdb 还缺少 tui 窗口,在源代码查看方面更是让人着急。

GoLand 实际上也是调用的 dlv 进行调试:

~$ ps aux | grep dlv
runsisi   406148  0.0  0.1 940732 11860 tty2     Sl+  08:04   0:00 /home/runsisi/software/GoLand-2019.1/plugins/go/lib/dlv/linux/dlv --listen=localhost:39071 --headless=true --api-version=2 exec /tmp/___hcl --
runsisi   406735  0.0  0.0  16192   980 pts/4    R+   08:30   0:00 grep --color=auto dlv

GoLand 配置

启用 go mod:

go mod

创建 Go Build 类型的配置:

add

配置参数如下:

go run

其中 Run kind 选择 PackagePackage path 是基于 module 前缀的完整 main package 所在目录;Working directory 是 go module 根目录(即 go.mod 所在目录)。

调试运行

调试运行效果如下:

debug