网上有很多goland远程调试方法,大多都是要在目标linux机器上安装dlv,然后启动远端dlv,在本地goland上新建一个 go remote 去连。帖子太多不再赘述。
其实不需要在远端服务器安装dlv,goland自带了各种架构的dlv程序,如下图所示。在进行远端调试的时候goland会自动判断目标机器的架构,然后把对应的dlv程序传递到目标机器上
先说方法:
1. 需要在目标机器上安装go:All releases - The Go Programming Language
我是linux X86_64的机器,直接下载的压缩包,下载好了解压,然后设置环境变量就行,细节不再赘述。
1. 先把本地代码映射到目标服务器上,提前配好ssh 服务。
2. 设置你的debug配置
3. 配好了之后,点击debug 就可以单步调试了。
遇到的问题:
1. dlv.exe: cannot execute binary file。
我的目标机器是linux 但是goland传了一个dlv.exe的windows程序上去,一开始我以为是goland对目标机器判断有问题,linux识别为windows了,后来发现是我之前手贱手动指定了dlv的位置。
解决办法:把上图中这一行删掉或者注释掉就行了。
问题2:goland自带的dlv程序版本太低了,没办法调试高版本的go代码。
解决办法:
1.在你的目标机上安装最新版本的dlv:go install github.com/go-delve/delve/cmd/dlv@latest
2. 安装好了之后,找到dlv的位置,给他下载下来。
3. 替换到你goland的对应的目录下: