goland远程调试go程序

goland是基于intellij IDEA推出的开发go的IDE,所以很多之前Intellij的使用习惯可以保留下来,实属developer的福音,今天遇到一个新的问题,就是我要调试远程服务器上的go代码,远程系统是ubuntu或者centos,总之是没有图形界面的,我想在本地调试该怎么办呢,答案是使用Delve 这个专门的调试工具。

前提:本地代码和远程代码保持一致,否则可能出现断点语句跟预期不一致或莫名其妙的情况。可以在Intellij中使用经典的remote host access插件来dowload或者upload代码实现同步。因为比较简单,具体使用姿势自行探索。

step1 远程主机

安装delve,项目地址:https://github.com/derekparker/delve
按照官方的提示安装即可(注意因为GFW等你懂得的原因,网络下载可能较慢或不可用,请自行使用某高科技软件,如ss+proxychains等工具)。

下载并安装完成后输入dlv就会看到帮助信息:

img

image.png

step2 本地

本地进入IDE,在要调试的地方打上断点,然后
run–debug–eidit configurations–>添加remote主机信息。

img

image.png

点debug 确认后,就会等待远端传回的debug信息。切远端:

step3 远端

如我要对 main.go 这个项目debug,对main进行编译后,可以直接运行
dlv –listen=:2345 –headless=true –api-version=2 exec ./main
然后本地就收到了调试信息。

参考资料

https://www.jianshu.com/p/e74e940a64d9