背景
由于软件环境的复杂性,可能你开发的程序有很多的依赖, 导致在本地无法调试, 或者配置环境很复杂。
这个时候就可以考虑远程调试, 直接使用已有的环境, 使用自己本地的代码版本去替换其他环境的组件和程序。
这样可以极大的减少配置调试环境的工作量。
下面将介绍如何配置 goland 远程调试。
Goland 配置远程调试
环境说明
大家都知道 Goland 一般使用 dlv 调试工具, dlv 也支持远程调试。
不过由于环境背景的复杂性, 可能你远程的服务器只能 ssh 连接,所以你 dlv 远程调试只能走 ssh 隧道。
由于远程调试需要远端和本地的代码版本一致, 所以需要用到 rsync 或者别的工具来传输代码。
Goland 自带的远程调试工具, 已经封装好了 dlv ssh rsync 等功能, 极大的方便了远程调试的过程。
具体步骤如下
- 页面上点击 Edit Configurations, 创建一个新的调试配置。
- 选择 Go build 类型。
- 给这个配置取个名字, 比如 remote-debug, 然后配置远端服务器信息, 选择上图中的2, 配置一个远端服务器。
- 配置远端服务器的连接信息, 填充上图中的 1、2、3、4 等信息。 注意, 如果选择了远端服务器编译的话,还需要远端服务器已经安装了 golang 的运行时。点击 1 旁边的三个点,进入下一步。
- 远端服务器如果是使用 ssh 隧道, 还需要配置 ssh 登录信息, 这里支持 rsa 私钥登录。
- 保存好远端连接信息后, 回到配置debug信息页, 配置好上图中自己要调试的 package 和目录信息, 加上自己的程序的启动参数。 点击 apply 或者 ok 保存。
就此, 可以愉快的通过 Goland 进行远程调试了。
每次启动远程调试的时候, Goland 会自动把最新代码版本通过 rsync 传输到远端服务器, 并通过 ssh 隧道, 创建 dlv 远程调试进程。 至此, 你就可以像本地调试一样打断点,看变量值, 并同时复用远端环境的依赖服务了。