Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 使用GDB进行调试时的奇怪行为_Debugging_Go_Gdb - Fatal编程技术网

Debugging 使用GDB进行调试时的奇怪行为

Debugging 使用GDB进行调试时的奇怪行为,debugging,go,gdb,Debugging,Go,Gdb,我有一个Go程序,我正在使用GDB调试(也是Eclipse/Goclipse,但它使用GDB,所以一切都是一样的)。偶尔,当我告诉GDBnext时,它的行为就像我告诉它要继续或完成。这就像在可执行文件中缺少堆栈/帧/等信息一样。帮忙 gdb-v给出: 版权所有(C)2013免费软件基金会。 许可证GPLv3+:GNU GPL版本3或更高版本 这是自由软件:您可以自由更改和重新发布它。 在法律允许的范围内,不存在任何担保。键入“显示复制” 和“显示保修”了解详细信息。 此GDB配置为“x86_64

我有一个Go程序,我正在使用GDB调试(也是Eclipse/Goclipse,但它使用GDB,所以一切都是一样的)。偶尔,当我告诉GDB
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.
然后使用普通编译器进行发布。