如何修复VSCode下通过Remote SSH使用dvl-dap调试Golang代码报错问题
dlv-dap调试Golang报错解决方案
1. 升级匹配版本的delve
dlv-dap调试适配器要求delve版本不低于v1.7.0,先在远程虚拟机终端执行以下命令升级到最新版:
go install github.com/go-delve/delve/cmd/dlv@latest
升级完成后执行dlv version确认版本号符合要求,同时确认$GOPATH/bin路径已经添加到远程环境的PATH变量中,可通过echo $PATH校验。如果VSCode还是找不到dlv,可手动在远程VSCode设置中指定dlv路径:
"go.alternateTools": { "dlv": "/你的自定义路径/go/bin/dlv" }
2. 校正VSCode Go插件配置
- 打开VSCode远程环境设置,搜索
go.debugAdapter,确认选项值设置为dlv-dap - 检查项目根目录下
.vscode/launch.json配置,基础调试配置参考如下,可开启showLog打印详细调试日志排查问题:
{ "version": "0.2.0", "configurations": [ { "name": "Go Debug", "type": "go", "request": "launch", "mode": "debug", "program": "${fileDirname}", "showLog": true } ] }
3. 排查环境限制问题
- 如果远程虚拟机配置了防火墙/安全组,先临时关闭验证,dlv-dap调试需要通过随机端口和VSCode通信,端口拦截会触发连接失败报错
- 若远程虚拟机为ARM架构,确保delve是通过
go install方式编译安装的对应架构版本,不要直接上传x86架构的二进制包使用 - 调试前先在项目根目录执行
go mod tidy补全依赖,避免编译失败触发调试报错
报错截图参考:
内容的提问来源于stack exchange,提问作者tul1
相关产品推荐
相关产品推荐

