1 先在远程服务器安装golang和delve
golang的安装,通过官网直接下载安装包安装接口
go install github.com/go-delve/delve/cmd/dlv@latest
如果dlv和golang版本不匹配,这里把@latest换成匹配的版本,比如@1.20.0
2 编译带调试信息的程序
go build -gcflags "all=-N -l"
这里go.mod文件在同级目录下,比如编译出的程序名为Test.exe
3 在远程机器上运行程序
dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient --log exec ./Test.exe -- -d
这里我的程序运行需要传递命令行参数 -d
4 本机配置launch.json并运行
{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "Remote Debug","type": "go","request": "attach","mode": "remote",//"remotePath": "D:\\Test","port": 2345, "host": "10.10.0.37", "cwd": "${workspaceFolder}" }]
}
这里,因为是直接调试exe,远程机器上并没有部署源代码,不需要"remotePath"这一项,配置完launch.json后,直接F5运行,在相关位置下断点即可。