登录
首页 >  Golang >  Go问答

在VSCode中如何设置特定.go文件的调试配置?

来源:stackoverflow

时间:2024-02-18 16:00:25 249浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《在VSCode中如何设置特定.go文件的调试配置?》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

目前,必须先在编辑器中聚焦.go文件进行调试,然后按F5键开始调试。

我想要的是能够按 F5 开始调试,但不必首先在编辑器中关注 main.go

这是VSCode生成的库存配置,F5之前必须关注.go文件:

{
        "name": "Launch Package",
        "type": "go",
        "request": "launch",
        "mode": "auto",
        "program": "${fileDirname}",
    }

尝试指定 programcwd 以使其满意:

{
        "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 同一目录下的另一个 .go 文件中。

这两个文件都在其顶部指定了 package main

在这种情况下,如何为特定的 .go 文件创建调试配置?


正确答案


program 属性指定为目录:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch Package",
      "type": "go",
      "request": "launch",
      "mode": "auto",
      "program": "${workspaceFolder}/cmd/sym_dump"
    }
  ]
}

${fileDirname}当前打开文件的文件夹路径。默认 Launch Package 模板使用 ${fileDirname} 而不是 ${file} (由 Launch file 模板使用)是有原因的。

让我们看看文档 首先对 dlv debug

关于package的信息并不多。让我们转向 go rundoc

如果我们将 program 属性指定为 ${workspaceFolder}/cmd/sym_dump/main.go,则表示该包包含单个文件 (main.go)。但事实是该包包含另一个定义 dumpTypesdumpSourceFiles 等的文件。这就是它无法构建程序的原因。

顺便说一句,因为“如果 cwd 被省略或为空,则程序文件夹将用作工作目录”(请参阅​​ Launch.json 属性),因此您不需要设置 cwd 属性。

到这里,我们也就讲完了《在VSCode中如何设置特定.go文件的调试配置?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>