使用goland调试远程代码

前言

很多时候我们都在window上使用goland,并直接使用goland调试go代码。
但是很多时候我们的程序运行在Linux服务器上,虽然可以通过dlv命令行进行手动打断点调试,但是太麻烦了。
因此我查阅资料发现,goland是支持远程调试的,因此写篇文章记录一下。

操作步骤

  1. 安装dlv

在Linux服务器上执行:go install github.com/go-delve/delve/cmd/dlv,安装dlv调试工具,因为是go编译的可执行程序,可以随意复制,其他环境甚至都可以不安装go语言环境。

  1. 按照goland提示添加远程调试
    如下图所示,配置一个远程调试:

  1. 添加编译配置
    如下图所示,配置一个编译:

  1. 在服务器运行
    将可执行程序上传到服务器,并使用dlv运行:

dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ./test001_linux

带命令行参数,在可执行程序后面带上 --,再后面就是命令行参数:

dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ./test001_linux -- -s 123

  1. 然后再window的goland上运行调试:

总结

从知道可以用dlv调试go代码的时候,我在Linux下就用dlv命令行打断点调试,太麻烦了,最后都是打印日志搞定。
自从学会了远程调试方法,现在调试代码爽爽哒,就算远端是个啥环境都可以远程调试搞定。