Debugging 使用GDB进行调试时的奇怪行为
我有一个Go程序,我正在使用GDB调试(也是Eclipse/Goclipse,但它使用GDB,所以一切都是一样的)。偶尔,当我告诉GDBDebugging 使用GDB进行调试时的奇怪行为,debugging,go,gdb,Debugging,Go,Gdb,我有一个Go程序,我正在使用GDB调试(也是Eclipse/Goclipse,但它使用GDB,所以一切都是一样的)。偶尔,当我告诉GDBnext时,它的行为就像我告诉它要继续或完成。这就像在可执行文件中缺少堆栈/帧/等信息一样。帮忙 gdb-v给出: 版权所有(C)2013免费软件基金会。 许可证GPLv3+:GNU GPL版本3或更高版本 这是自由软件:您可以自由更改和重新发布它。 在法律允许的范围内,不存在任何担保。键入“显示复制” 和“显示保修”了解详细信息。 此GDB配置为“x86_64
next
时,它的行为就像我告诉它要继续
或完成
。这就像在可执行文件中缺少堆栈/帧/等信息一样。帮忙
gdb-v
给出:
版权所有(C)2013免费软件基金会。
许可证GPLv3+:GNU GPL版本3或更高版本
这是自由软件:您可以自由更改和重新发布它。
在法律允许的范围内,不存在任何担保。键入“显示复制”
和“显示保修”了解详细信息。
此GDB配置为“x86_64-apple-darwin13.1.0”。
有关错误报告说明,请参阅:
go-v
给出:
go版本go1.2.1达尔文/amd64
它们都是在OSX.9下安装MacPorts的。这不仅仅是OSX。gdb并不真正理解goroutines,也不能总是遵循goroutines,因为它们可以跨操作系统线程进行调度 您可以尝试稍后使用另一个断点再次捕获执行,但我认为您不能做更多其他事情
GDB对于堆栈跟踪和断点仍然很有用,但在可预见的将来,单步执行代码将无法可靠地工作。在golang dev邮件列表中,有人讨论了如何持续改进gdb,而不是放弃gdb,转而使用新的东西;但尚未发布任何公告。GDB和golang在监管下存在一些问题osx@fabrizioM可爱。所以基本上,只要OSX是我的平台,我就完蛋了?或者我可以尝试修复吗?您可以使用
gccgo
进行调试生成,安装gccgo,然后使用go build-compiler=gccgo.
然后使用普通编译器进行发布。