Go语言远程调试方法
基本的环境:
- 本地是MacOS和IntelliJ Idea环境
- 远程是Linux-amd64的环境
简而言之,在本地的IDEA开发环境里边,对远端运行的程序进行调试。
编译选项
- 对于golang 1.10及以上,需要加上
-gcflags "all=-N -l"
- 对于golang 1.9及以下,需要加上
-gcflags "-N -l"
简单来说,我一般这样编译:
|
|
这样子既可以完全静态编译,又加上了调试信息。
远端运行
假定程序名是
main
如果程序已启动:
|
|
如果程序未启动:
|
|
提示: 关于
dlv
,查看官网:https://github.com/derekparker/delve ,一般我喜欢在本地将它静态编译为dlv-linux-amd64
,然后拷贝到远端的/usr/local/bin/dlv
,这样子就可以直接使用了。
提示:记得将
2345
端口开放给指定的IP可以访问,这样子你本地才可以连接至这个端口进行调试。
本地配置
在IDEA环境上,点击Edit Configurations...
,按如下进行配置:
点击Debug的按钮
然后在你的代码上设定断点就可以进行调试了:
一旦连接上了,红色框框内的这个按钮,会从灰色变成了彩色,表示可以使用了,然后就可以进行调试了,非常的方便~