2014-09-28 116 views
3

我安装了LiteIDE和GDB。我在LiteIDE中打开了我的Go项目,并在代码中的某个点添加了一个断点。然后我切换回终端并运行应该启动断点的项目二进制文件,但没有发生任何事情。我究竟做错了什么?使用Golang的LiteIDE GDB

+0

您必须以某种方式启动要从LiteIDE内部调试的二进制文件,但是我目前没有使用调试或LiteIDE,因此很不幸我的帮助。 :/ – twotwotwo 2014-09-29 01:46:26

+0

我可以问你连接调试器的内容吗?没有太多的插件我自己的lib ..我写了一些东西,让你用go lib导入交互式地(在浏览器中)“观察”变量。否则,单元测试在验证功能方面非常好。我从来没有完全摆脱过GDB的困境......它似乎随机为我崩溃......并始终处于最坏的可能时间:( – 2014-09-29 02:57:24

回答

1

您必须从IDE启动可执行文件才能找到任何断点。

另外请记住,gdb在Go 1.3.x中几乎没有意义,在1.4(dev)中更是如此。

https://golang.org/doc/gdb

GDB不明白围棋程序很好。堆栈管理,线程和运行时包含与执行模型相差甚远的方面GDB希望即使在使用gccgo编译程序时,他们也会混淆调试器。因此,虽然GDB在某些情况下很有用,但它并不是Go程序的可靠调试器,尤其是高度并发的调试器。此外,围绕这些困难的问题,Go项目并不是一个优先事项。简而言之,下面的说明只能作为指导如何在工作时使用GDB,而不是保证成功。

随着时间的推移,可能需要更多以Go-centric为核心的调试体系结构。

+0

为什么它在1.3.x中毫无意义?Go是一种即将到来的语言,我应该怎么调试,就像我在xcode中做的一样?(我以前的环境为3年) – llSourcell 2014-09-29 06:38:28

+3

@llSourcell很遗憾gdb支持在1.3中被破坏,在1.4中更是如此,所以几乎唯一真正的调试工具是很多'fmt.Printf' – OneOfOne 2014-09-29 07:02:21

+0

调试1.0 :)但不知怎的,我不会错过调试器那么多。 Go比Python的例子更容易推理,静态类型在这里很有帮助。进行适当的测试也有助于调试东西。 – RickyA 2014-10-01 10:25:48

0

我使用这个包https://github.com/gostart/debug/到目前为止,这是我找到的最佳解决方案。 希望这有助于。

+0

这似乎是已经在标准库中的实用程序集合。我知道我不应该在这里自我宣传..但是因为使用GDB和_basic_调试的问题不断出现..我将链接到我的“调试器”Go:https://github.com/simon-whitehead /去调试 – 2014-09-29 10:47:02

+0

嗨西蒙, 感谢您的工具,它看起来很有希望。具有像我提到的lib这样的转储功能会很好。调试复杂类型时非常方便,对于我来说,沿着堆栈跟踪,这在使用复杂的第三方库时非常重要。 – 2014-09-30 18:10:07

+0

...我可以添加的所有东西。感谢您的反馈 :) – 2014-09-30 22:54:30