本文内容主要包括:
概述:
- 主要就是把代码放到服务器上然后远程去开发和调试
工具:
- vscode
远程端:
- linux
一.安装远程插件
vscode安装Remote - SSH,Remote Explorer,Remote Development,Remote - SSH: Editing Configuration Files,Remote - Tunnels插件
二.建立远程连接
1.输入远程配置
2.选择保存配置的文件
3.选择连接的系统![](https://i-blog.csdnimg.cn/blog_migrate/b485eee19de90e64a68707da8a7e7003.png)
4.查看连接![](https://i-blog.csdnimg.cn/blog_migrate/5218bb7c3daaeeee1937ce97101cdd32.png)
5.打开代码所在的目录
完成:
6.测试
三.远程调试
1.远程服务器需要安装dlv
delve,简称dlv是go语言的最常用的调试器
# 第一步:设置代理(如果可以访问外网可以不用这一步)
go env -w GOPROXY=https://goproxy.cn
# 第二步安装(最新)
go install github.com/go-delve/delve/cmd/dlv@latest
# 第三步:查看,注意版本一致
~]# dlv version
Delve Debugger
Version: 1.21.0
Build: $Id: fec0d226b2c2cce1567d5f59169660cf61dc1efe $
~]# go version
go version go1.21.0 linux/amd64
# 指定安装
# Install at a specific version or pseudo-version:
$ go install github.com/go-delve/delve/cmd/dlv@v1.7.0 go.1.11
$ go install github.com/go-delve/delve/cmd/dlv@v1.7.3 go.1.16
$ go install github.com/go-delve/delve/cmd/dlv@v1.7.4-0.20211208103735-2f13672765fe
# 如果安装的时候报错执行下面这个
go env -w GO111MODULE=auto
2.vscode中配置
默认模板
在vscode中鼠标移动到json的字段上会提示可以填写的参数。这里手动添加一条远程调试的配置,配置如下
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${fileDirname}"
},
{
// 调试配置的名称,用作vscode中区分
"name": "remotedebug",
// 调试类型,go语言当然选择go
"type": "go",
// 调试请求类型,可以选择launch启动调试和attach附加调试
"request": "launch",
// 调试模式,这里选择远程调试
"mode": "remote",
// 必填项,远程调试里好像没什么用处
"program": "${fileDirname}",
// 远程连接的端口号
"port": 2345,
// 远程主机的ip地址
"host": "192.168.4.7",
// 被调试的代码在远程主机上的路径,必须使用绝对路径.且具体到指定调试目录
"remotePath": "/data1",
}
]
}
3.在远程主机中启动dlv
# cd 到源代码所在的目录,这个目录要与上一步在vscode中remotePath字段配置的路径一致运行以下命令
cd /data1
dlv debug --headless --listen ":2345" --log --api-version 2
4.进行VScode调试
操作快捷键
- F5 开始调试
- shift + F5 停止调试
本文参考:
VS Code远程调试golang代码_vs code go远程调试_Turbock的博客-CSDN博客
golang dlv 安装 - 小夜天 - 博客园 (cnblogs.com)
解决golang提示dial tcp 172.217.160.113:443: connectex: A connection attempt failed - 知乎 (zhihu.com)