goland远程调试

jetbrains golang: 2019.3

golang: 1.13

安装dlv

https://github.com/go-delve/delve

1
2
3
4
5
6
7
8
9
10
11
12
13
mkdir $GOPATH/src
mkdir $GOPATH/src/golang.org
mkdir $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/net.git
git clone https://github.com/golang/sys.git
git clone https://github.com/golang/arch.git
git clone https://github.com/golang/sync.git
git clone https://github.com/golang/tools.git
cd $GOPATH/src
go get -u github.com/go-delve/delve/cmd/dlv

dlv version

golang配置

在本地创建一个项目

添加远程服务器信息

添加远程主机的ip,指定登录的用户名和密码

这里映射远程主机的目录,目录名可以和本地的不一样

将本地代码上传到远程主机

配置远程调试

设置远程主机的ip

运行调试

1
2
3
4
5
6
cd /root/remote

#dlv debug --headless --listen=:5002 --api-version=2 --accept-multiclient
#加上--accept-multiclient选项后无法退出,这里就去掉这个选项
#这个命令,同时完成了编译和运行,如果运行程序需要声明参数,直接加在后面就好
dlv debug --headless --listen=:5002 --api-version=2

在远程主机运行完上面的指令后,设置好断点,在golang ide中点击调试按钮即可

在本地可以查看变量,打印的日志本地是看不到的,在远程主机上才能看到