【问题标题】:Debug Golang code and attach it to local process调试 Golang 代码并将其附加到本地进程
【发布时间】:2018-09-18 20:32:18
【问题描述】:

我有一个 Golang 代码,我通过 go build 从它为 mac 创建二进制文件 喜欢:

build darwin amd64 myapp

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

现在我想调试它,有没有办法用GolandIntellijVSCode 调试二进制文件?使用delve 进行常规调试可以在上面的所有 IDE 中工作,但现在我想将它附加到我能够运行的二进制进程中,如果可能的话,知道吗?

【问题讨论】:

  • 你试过delve的attach命令吗?
  • @JimB - 我已经尝试将新的 Goland 附加到本地进程,我能够在打开的对话框中看到该进程,但无法调试它,出现错误 "could not attach to pid 97234: EOF"
  • @JimB - 我已经安装了delve 调试器,但我从vsCodeGoland 使用它进行内部调试,您能否提供我应该在附件中尝试的步骤命令,我会尽快完成
  • 您可能会看到:github.com/derekparker/delve/issues/1165 -- 首先从命令行尝试,这样您就知道这是编辑器集成的问题,还是工具本身的问题。

标签: debugging go binary visual-studio-code goland


【解决方案1】:

如果您使用 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 中解决。

【讨论】:

  • 非常感谢 1+ ,如果我使用解决方法,它应该如何工作?我打开 cli 并执行二进制文件,然后我去 Goland 并使用附加到本地进程,但我失去了一些时间,直到我点击进程对话框并找到 PID,我应该做不同的吗?
  • 你回答我的第一个问题,我关闭它,如果你能看看评论会很棒...谢谢
  • 我们刚刚发布了 IDE 的更新,它应该可以再次进行调试,而无需您提供任何解决方法。请尝试一下,如果它仍然不起作用,请在我链接的问题中发表评论。感谢您,给您带来的不便,我们深表歉意!
  • 谢谢,只有两个问题:我应该在更新后删除Use native backend 吗?
  • 最新的 Goland 2018.1.1 应该修复了 OSX 问题。
猜你喜欢
  • 2018-09-23
  • 1970-01-01
  • 2013-03-12
  • 2013-09-29
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
  • 2018-10-12
  • 2019-08-12
相关资源
最近更新 更多