Sha*_*bob 6 debugging go visual-studio-code
我的 main.go 在一个子文件夹中,cmd/admin/main.go
但是当我调试并且文件中有错误时,它为我提供了 main.go 文件夹而不是工作区文件夹的相对路径。因此,例如..\..\path\to\file.go:238:3: undefined: test
,如果我尝试按 Ctrl+单击它,我将遇到无法工作的错误。
如果我从根目录启动命令,该命令go run cmd/admin/main.go
按预期返回path\to\file.go:238:3: undefined: test
.
我的launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "auto",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/cmd/admin",
"env": {},
"args": []
}
]
}
Run Code Online (Sandbox Code Playgroud)
Go 版本 1.16.6
VSC 版本 1.58.2
操作系统 Windows10
转到文件 > 将文件夹添加到工作区然后选择包含 main.go 的文件夹
您也可以在命令行中执行此操作:
code cmd/admin -a
Run Code Online (Sandbox Code Playgroud)
现在确保您当前的 launch.json 已被删除以重新开始,您的工作区应如下所示:
请注意,有一个“package main”和“func main()”,这是 Go 知道入口点所必需的。
现在按“运行”并使用断点进行调试:
就是这样,它现在应该适用于您添加到工作区的任何文件夹。如果您需要更具体的调试选项,请将它们添加到您的工作区,它们将应用于您运行的文件的上下文中。单击“创建 launch.json 文件:
选择工作区:
选择开始:启动包
您现在拥有一个启动配置,该配置将应用于您运行它的目录:
确保保存您的工作区以保留它:
如果当前的 launch.json 文件已存在于任何地方,请务必将其删除。
确保所有源代码都位于 GOPATH/src 中,您可以通过将其放入命令行来找出 GOPATH 的位置:
go env GOPATH
Run Code Online (Sandbox Code Playgroud)
VS Code 工作区调试: https://code.visualstudio.com/docs/editor/multi-root-workspaces#_debugging
GOPATH: https: //golang.org/doc/gopath_code
尝试并确保:
GOxxx
设置环境变量( no GO_BASE_PATH
, no GOROOT
),除了GOPATH
设置为%USERPROFILE%\go
, 并且%GOPATH%\bin
在您的%PATH%
C:\Program Files\Go\
文件夹中的 Gogo mod init myproject
<name>.code-workspace
JSON 文件)。然后查看问题是否仍然存在(并且cwd
您的 中不需要launch.json
)