goland使用dlv调试本地"远程"项目

利用GoLand中的debug功能里的go remote一项,可以调试一个指定的host:port的项目。

goland使用dlv调试本地"远程"项目

由此我们可以联想到,很多情况下项目并没有一个像简单的application给你debug的情况,那么我们就可以利用go remote调试启动的完整项目。

需要先安装dlv,安装文档如下 delve安装 

另外也可以去看一下阿里云社区的文档详细介绍delve的使用 使用Delve进行Golang代码的调试

启动的时候根据第一张图的提示,需要先dlv启动项目,再在Goland中debug,否则debug由于监听不到该host,会报connection refused的错误。不这样做的话会导致dlv无法监听到项目导致无法进入断点,也就起不到debug的预期功效了。具体

这样暂时有点问题,是dlv启动停止的时候直接利用Ctrl-C无法停止项目,需要ps查看进程号将进程杀死,同时需要注意的是,debug也是一个进程,所以需要将debug进程也杀死,直至项目无法连接。

PS: 看了一下delve项目的issue issue1318,是由于启动的时候的--headless参数,会屏蔽掉系统的信号量,下次试一下不加这个参数能否调试。

PPS: 之前dlv无法进入断点是由于监听的端口没有利用dlv启动导致的,修改了启动的流程后问题解决。