log*_*gan 4 go visual-studio-code vscode-settings
当我在 VSCode dlv dap 调试中启动时,我收到以下消息:
Couldn't start dlv dap:
Error:timed out while waiting for DAP server to start
Run Code Online (Sandbox Code Playgroud)

我已经有了项目的启动配置?
午餐.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch file",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceFolder}",
"showLog": true,
"env": {
"GO111MODULE": "on"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
和 setting.json 是:
{
"folders": [
{
"path": "."
}
],
"settings": {
"go.useCodeSnippetsOnFunctionSuggestWithoutType": true,
"go.autocompleteUnimportedPackages": true,
"go.gocodePackageLookupMode": "go",
"go.gotoSymbol.includeImports": true,
"go.useCodeSnippetsOnFunctionSuggest": true,
"explorer.confirmDelete": false,
"go.formatTool": "goimports",
"go.docsTool": "gogetdoc",
"go.buildFlags": [],
"explorer.confirmDragAndDrop": false,
"window.zoomLevel": 0.8,
"editor.minimap.enabled": false,
"go.useLanguageServer": true,
"go.delveConfig":{
"debugAdapter":"dlv-dap"
},
"[go]": {
"editor.snippetSuggestions": "none",
"editor.formatOnType": true,
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
},
"gopls": {
"experimentalWorkspaceModule": true,
"usePlaceholders": true, // add parameter placeholders when completing a function
"completionDocumentation": true // for documentation in completion items
}
},
}
Run Code Online (Sandbox Code Playgroud)
项目的结构如图所示?

您可能会幸运地将 delveConfig 切换为使用旧模式:
"go.delveConfig":{
"debugAdapter":"legacy"
}
Run Code Online (Sandbox Code Playgroud)
我和我的团队最近在更新 VSCode 后开始看到同样的问题。这里有关于此设置的更多信息:https://go.googlesource.com/vscode-go/+/HEAD/docs/debugging.md#switching-to-legacy-debug-adapter,但我相信根本原因(如果这确实解决了您的问题)将是您的 Golang 版本而不是 dlv-dap 的目标版本。Go 版本 1.15 以下的任何内容都需要使用旧模式,而最新版本的 delve 调试器现在默认会跳过旧模式。
我还需要在此更改生效之前终止 VSCode。根据 dlv-dap 文档,您还可以通过将 launch.json 的模式切换为“远程”来强制其进入旧模式,因此可能有一些(也许更好)的方法来解决此问题。
这可能是由于最近更新了VS Code Go 扩展。
第一个选项是通过"Go: Install/Update Tools"从命令面板运行命令来修复它(Linux/Windows : Ctrl+ Shift+ P,Mac : ?+ ?+ P)。
然后,从菜单中标记dlv& dlv-dap,然后点击确定开始安装/更新。
Delve 的本机 DAP 实现正在积极开发中,因此请使用从其主分支构建的 Delve 来利用最新的功能和错误修复。Go 扩展将这个最新版本的 Delve与正式发布的 dlv 版本分开维护,并使用名称 dlv-dap 安装它。
第二种选择是使用旧式调试适配器。更多关于这个在下面的链接...
在https://github.com/golang/vscode-go/blob/master/docs/debugging.md查看完整文档
| 归档时间: |
|
| 查看次数: |
2356 次 |
| 最近记录: |