调试Golang代码并将其附加到本地进程

sho*_*a T 5 debugging binary go visual-studio-code goland

我有一个 Golang 代码,我通过 go build 从它的 mac 二进制文件创建,如下所示:

build darwin amd64 myapp

目前我可以运行二进制文件并查看日志。

现在我想调试它,有没有办法用GolandorIntellij或来调试二进制文件VSCode?常规调试delve可以在上面的所有 IDE 上运行,但现在我想将它附加到我能够运行的二进制进程中,知道是否可能吗?

dls*_*per 5

如果您使用 GoLand 2018.1+,您应该能够使用 Run | 附加到本地进程功能,它将允许您调试正在运行的二进制文件。

我建议您在关闭所有优化的情况下编译二进制文件并使用 Go 1.10+ 进行编译,以获得最佳的调试体验。

此外,IDE 可以通过单击启动二进制文件并对其进行调试,从而无需执行多个步骤。

我可以提到的最后一个问题是,由于 Apple 在最新开发者工具中引入了一个错误,因此无论您使用哪个编辑器,您目前都无法通过 Delve 正确调试 Go 应用程序。有关更多信息,请参阅我们的跟踪器上的问题: https: //youtrack.jetbrains.com/issue/GO-5527和 Delve 的跟踪器上的问题: https: //github.com/derekparker/delve/issues/1165

编辑:

上述问题已在 GoLand 2018.1.1 中得到解决。