登录
首页 >  Golang >  Go问答

修复 Docker 中 Go Delve 调试器适配器问题的方法

来源:stackoverflow

时间:2024-02-20 15:09:25 435浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《修复 Docker 中 Go Delve 调试器适配器问题的方法》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我已经在容器内启动了 go delve 调试器的无头实例。远程服务器正在侦听端口 2345。然后我使用 launch.json 文件连接到 vscode 中的服务器:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "launch",
      "type": "go",
      "mode": "remote",
      "request": "launch",
      "program": "${workspacefolder}",
      "remotepath": "/demo",
      "port": 2345,
      "env": {},
      "args": [],
      "showlog": true,
      "trace": "verbose"
    }
  ]
}

docker 工作正常。但是当我保留断点时,我收到以下错误:

Unhandled error in debug adapter: TypeError: Cannot read properties of undefined (reading 'addr')
    at GoDebugSession.convertDebugVariableToProtocolVariable (/Users/user/.vscode/extensions/golang.go-0.35.1/dist/debugAdapter.js:16709:25)
    at /Users/user/.vscode/extensions/golang.go-0.35.1/dist/debugAdapter.js:16249:55
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Promise.all (index 1)

正确答案


此问题被报告为 vscode-go#2397,并已由 vscode-go#2618 修复。该修复已在 v0.38.0(2023 年 2 月 28 日)中发布。

但根据问题报告中的评论,根本原因是应用程序是在打开优化的情况下构建的。最好使用 -gcflags="all=-N -l" 编译调试二进制文件。请参阅dlv exec

顺便说一句,addr 字段位于 vscode-go 扩展的源代码中。有关更多信息,请参阅拉取请求 vscode-go#2618

终于介绍完啦!小伙伴们,这篇关于《修复 Docker 中 Go Delve 调试器适配器问题的方法》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>