debugging 如何使用docker修复go delve debugger adapter错误?

2hh7jdfx  于 2023-05-18  发布在  Docker
关注(0)|答案(1)|浏览(198)

我已经在容器中启动了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)
yiytaume

yiytaume1#

此问题报告为vscode-go#2397,并已由vscode-go#2618修复。修复程序已在v0.38.0(2023年2月28日)中发布。
但根据问题报告中的评论,根本原因是应用程序是在打开优化的情况下构建的。最好用-gcflags="all=-N -l"编译调试二进制文件。参见dlv exec。
顺便说一句,addr字段在vscode-go扩展的源代码中。更多信息请参见pull request vscode-go#2618

相关问题