【问题标题】:GoLang debug console applicationGoLang 调试控制台应用程序
【发布时间】:2018-08-07 17:47:20
【问题描述】:

我正在尝试调试this project

我正在使用 Visual Studio 代码,并设置了 Go 扩展程序。 我可以在主函数中设置断点并对其进行调试,但我从未看到可视命令提示符。我使用了 Delve,运行了项目生成的 exe,并附加了它。这允许我调试它,但我更愿意在 vscode 中调试它。

我尝试使用这个 vscode 调试配置:

    {
        "name": "Launch file",
        "type": "go",
        "request": "attach",
        "mode": "exec",
        "program": "${workspaceFolder}/lazygit.exe"
    },

它是成功的。但同样,我看不到实际的命令窗口并实际使用该项目。

有什么方法可以附加到 vscode 中已经打开的进程,比如在 delve 中,或者让 vscode 在命令窗口中启动 exe?

【问题讨论】:

    标签: git go visual-studio-code delve


    【解决方案1】:

    您正在使用.exe 文件来调试代码。使用原始代码对应用程序进行调试。还有一个调试控制台,您可以在使用断点调试或出现任何错误时查看输出。 launch.json 的配置应该是:

    {
        "name": "Launch",
        "type": "go",
        "request": "launch",
        "mode": "debug",
        "remotePath": "",
        "port": 2345,
        "host": "127.0.0.1",
        "program": "${workspaceFolder}",
        "env": {},
        "args": [],
        "showLog": true
    }
    

    调试控制台将显示调试和标准输出的输出:

    【讨论】:

    • 我已经尝试过了。我尝试调试的应用程序在控制台中使用 gui。当我使用此配置查看调试控制台时,gui 不会出现。这就是我试图附加到exe的原因。还有其他建议吗?
    • @MatthewMallimo 您只能调试原始代码的源代码。您无法调试工作中的 gui 应用程序。尝试运行项目的主文件,这将使用 gui 运行项目,然后在代码上创建断点。
    【解决方案2】:

    确保在 go build 命令中禁用编译器优化。它应该是这样的:

    go build -gcflags="all=-N -l"
    

    【讨论】:

      猜你喜欢
      • 2015-05-22
      • 2013-11-05
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      相关资源
      最近更新 更多