Golang 远程调试工具Delve 安装使用(golang 调用外部程序)

本地调试是首选,如果可以本地调试,那自然是本地调试最方便。
但是本地环境和实际环境很多时候是不一样的,很难在本机搭建出与线上完全相同的环境,比如我们想调试数据库、调试rpc、调试服务注册发现,这些线上都是现成的,但在我们本机就很难复制,再比如线上的网络和我们本机的网络环境是不一样的,这些场景下本地调试均无法满足我们的需求,需要把我们的程序部署在线上环境,才能测试。

Golang  远程调试工具Delve 安装使用(golang 调用外部程序)

之前不知道远程调试,我都是改好了程序,push到git上,然后到线上的机器pull下来,编译,运行,看日志。。。一方面,每次改完程序想测试一下,很繁琐,另一方面,完整的开发完一个feature,产生了几十次commit。。。

好在,goland有远程调试功能!

有了远程调试,在goland写完代码,直接同步到远端机器,然后点小虫子按钮调试,然后设断点,就基本上跟本地调试一样方便了。

Golang debug 推荐使用 Delve 工具,项目地址:https://github.com/derekparke...
1.安装

或者

安装成功之后,运行 dlv 如下图:

image.png

如果上述不成功,将编译完成的 dlv 命令 拷贝到path 路径的任意一个目录下:

再次运行.
(如果上述安装失败参见:https://www.cnblogs.com/20170...)

2.调试
调试就一句语句: dlv debug main.go

dlv常用的命令:

远程调试几个步骤:

远程服务器安装 delv (上面已经介绍)
远程服务器编译要调试的程序:
go build -gcflags "all=-N -l" test1.go

远程服务器运行命令:
dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec https://segmentfault.com/a/test1

本地goland配置连接:
image.png

本地代码就可以设置断点就可以调试了。

参考:
https://djqueue.blog.csdn.net...
https://blog.csdn.net/zhetmdo...
https://www.jianshu.com/p/4b2...
https://www.jianshu.com/p/280...

转载请说明出处 内容投诉内容投诉
九幽软件 » Golang 远程调试工具Delve 安装使用(golang 调用外部程序)