我已经在容器中启动了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)
1条答案
按热度按时间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。