在使用 VSCode 进行 Go 语言开发时,我们经常需要进行调试以解决问题。然而,对于特定的 .go 文件,我们可能需要创建自定义的调试配置。那么,如何在 VSCode 中为特定 .go 文件创建调试配置呢?在本文中,php小编柚子将为您详细介绍具体步骤和注意事项,帮助您轻松实现这一目标。无论您是初学者还是有经验的开发者,本文都将为您提供有价值的指导。让我们开始吧!
目前,必须先在编辑器中聚焦.go
文件进行调试,然后按F5键开始调试。
我想要的是能够按 F5 开始调试,但不必首先在编辑器中关注 main.go
。
这是VSCode生成的库存配置,F5之前必须关注.go
文件:
{ "name": "Launch Package", "type": "go", "request": "launch", "mode": "auto", "program": "${fileDirname}", }
尝试指定 program
和 cwd
以使其满意:
{ "name": "Launch Package", "type": "go", "request": "launch", "mode": "auto", "program": "${workspaceFolder}/cmd/sym_dump/main.go", "cwd": "${workspaceFolder}/cmd/sym_dump", }
但这不起作用,它抱怨未找到函数:
Starting: C:\Users\aybe\go\bin\dlv.exe dap --listen=127.0.0.1:49541 from C:\GitHub\psx_mnd_sym/cmd/sym_dump DAP server listening at: 127.0.0.1:49541 Build Error: go build -o C:\GitHub\psx_mnd_sym\cmd\sym_dump\__debug_bin2780105186.exe -gcflags all=-N -l .\main.go # command-line-arguments .\main.go:340:13: undefined: dumpTypes .\main.go:344:14: undefined: dumpSourceFiles .\main.go:348:14: undefined: dumpDecls .\main.go:357:13: undefined: dumpTypes .\main.go:365:13: undefined: dumpIDAScripts .\main.go:380:13: undefined: dumpTypes (exit status 1)
实际函数位于与 program
同一目录下的另一个 program
同一目录下的另一个 .go
文件中。
这两个文件都在其顶部指定了 package main
。
在这种情况下,如何为特定的 .go
文件创建调试配置?
将 program
文件创建调试配置?
解决方法${fileDirname}
是 当前打开文件的文件夹路径。默认 Launch Package
模板使用 ${fileDirname}
而不是 ${file}
(由 Launch file
program
属性指定为目录:
{ "version": "0.2.0", "configurations": [ { "name": "Launch Package", "type": "go", "request": "launch", "mode": "auto", "program": "${workspaceFolder}/cmd/sym_dump" } ] }
dlv debug
让我们看看文档package
的信息并不多。让我们转向 go run
首先对 :
的 program
属性指定为 ${workspaceFolder}/cmd/sym_dump/main.go
,则表示该包包含单个文件 (main.go
)。但事实是该包包含另一个定义 dumpTypes
、dumpSourceFiles
doc
如果我们将 program
属性指定为 ${workspaceFolder}/cmd/sym_dump/main.go
,则表示该包包含单个文件 ()。但事实是该包包含另一个定义 dumpTypes
、dumpSourceFiles
等的文件。这就是它无法构建程序的原因。cwd
以上是如何在 VSCode 中为特定 .go 文件创建调试配置?的详细内容。更多信息请关注PHP中文网其他相关文章!