繁体   English   中英

GoLang 调试控制台应用程序

[英]GoLang debug console application

我正在尝试调试这个项目

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

我尝试使用此 vscode 调试配置:

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

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

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

您正在使用.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
}

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

在此处输入图片说明

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

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

我在尝试调试在终端中生成某种 UI 的应用程序时遇到了类似的问题。 我设法得到这样的效果,从VSCode启动调试器后,程序编译并在单独的控制台中运行,允许我测试 UI 渲染和 IO 操作。 我的lanuch.json看起来像这样:

"version": "0.2.0",
    "configurations": [
        {
            // Other not related properties...
    
            "request": "launch",
            "mode": "debug",
            "console": "externalTerminal" // The important one
        }
    ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM