我有一个Go程序,正在使用GDB(也是Eclipse / Goclipse,但它使用GDB进行调试)进行调试。有时候,当我告诉GDB时next
,它的行为就像我告诉continue
或finish
。就像可执行文件中缺少堆栈/框架/等信息。救命?
gdb -v
给出:
版权所有(C)2013 Free Software Foundation,Inc.许可证GPLv3 +:GNU GPL版本3或更高版本http://gnu.org/licenses/gpl.html这是免费软件:您可以自由更改和重新分发它。在法律允许的范围内,没有任何担保。键入“显示复制”和“显示保修”以获取详细信息。该GDB被配置为“ x86_64-apple-darwin13.1.0”。有关错误报告的说明,请参见:http : //www.gnu.org/software/gdb/bugs/。
go -v
给出:
go版本go1.2.1 darwin / amd64
两者都在OSX.9下安装了MacPorts。
不只是OSX。gdb并不真正理解,并且不能始终遵循goroutine,因为它们可以跨OS线程进行调度。
您总是可以稍后尝试在另一个断点处再次捕获执行,但是我认为您还可以做很多事情。
GDB对于堆栈跟踪和断点仍然有用,但是在可预见的将来单步执行代码将无法可靠地工作。在golang开发人员邮件列表中,一直在讨论有关不断改进gdb而不是放弃gdb以支持某些新事物的讨论。但尚未发布任何公告。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句