我到处搜索并尽我所能,但在 VSCODE 中调试 go exe 对我来说真的很奇怪。
如果我单步执行代码,调试器有时似乎会到处乱跳,就好像我在切换线程一样。大多数时候,如果我将鼠标悬停在变量上,什么都不会发生。如果我尝试将它们添加为手表,我只会“不可用”。我正在 IDE 中构建和运行。
我有最新版本的 go and delve。我看到我应该使用一些 gcflags 设置来避免编译器优化,但什么也没做。不知道如何取得进展。有什么线索吗?
更新:毕竟,这只是 VSCODE 使用的构建任务中的一个错字。问题确实是编译器优化,需要使用以下确切语法禁用它:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Make Prog",
"type": "shell",
"command": "go",
"args": [
"install",
"-gcflags",
"-N -l",
"./..."
],
"group": {
"kind": "build",
"isDefault": true
},
}
]
}
相关的是我正在使用“exec”而不是“debug”来调试可执行文件。