goland配合dlv远程调试服务器代码

服务端设置

前提你得提起在服务端安装好go,安装过程就不赘述了。

  1. 首先拉去你要调试的代码到服务端(也可以不用拉去,从本地的goland直接推送到服务端也是可以的)。
  2. 安装dlv工具,go install github.com/go-delve/delve/cmd/dlv@latest。如果install后,dlv --help提示找不到dlv指令,请检查GOPATH是否正确设置。如果没有那咱们手动配置下即可。export PATH=$GOPATH/bin:$PATH

dlv如何来配合调试呢?

两种方式,第一种是先启动我们要调试的程序。第二种是要调试的程序和dlv工具一起启动
1.第一种,先启动待调试的程序,例如[root@i-pvirg1hu ~]# ./v2ray run -config /etc/v2ray/config.json -confdir /etc/v2ray/conf;接着启动dlv,启动命令行dlv attach 29365 --headless --api-version=2 --log --listen=:2345这里的29365为待调试程序的进程id。
2.第二种,将第一种两个过程合并在一起dlv --headless --api-version=2 --log --listen=:2345 exec ./v2ray -- run -config /etc/v2ray/config.json -confdir /etc/v2ray/conf API server listening at: [::]:2345
我这里实验用的是第二种,效果如下图
在这里插入图片描述
注意:这里我们待调试的程序是v2ray,要用dlv调试,那么要禁用内敛优化,即编译go程序的时候要加上-gcflags "all=-N -l"。即我这里的编译指令为GO_ENABLED=0 go build -o $HOME/v2ray -trimpath -gcflags "all=-N -l" ./main

goland端配置

配置sftp在这里插入图片描

配置本地和远程的代码的映射关系
以上两步之后,还需要配置下ssh,因为等下本地改了代码要推送到服务端。
这里可以一键推送(注意此处的推送并非git push别混淆了)
在这里插入图片描述

配置远程debug

这里主要是配置dlv listen的host和port。注意别和我们待调试程序的host和port混淆了
在这里插入图片描述

开始在本地的goland开始debug

在本地的需要调式的代码处打好断点,开始调试
在这里插入图片描述
不得不说,dlv是真的nice。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值