有人在eclipse中渲染漂亮的打印时有一个gdb悬挂的解决方法吗?

时间:2017-05-02 17:14:58

标签: gdb eclipse-cdt pretty-print

我已经更新到eclipse霓虹灯,我已经更新到最新版本 svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python,我刚刚构建了gdb 7.12.1,所有最新的东西,都没有帮助。

我有漂亮的打印工作,但每隔一段时间,尝试更新变量视图,gdb将挂起。实际上它旋转了cpu。我已经将gdb附加到gdb(因为我发现这个想法很有趣)并且已经获得了许多堆栈跟踪,并且它们都意味着一些未能找到打印机并反复重试。任何人都看到这个或有一个解决方法?不明显的是哪台打印机(如果它是一台打印机)导致问题,或者我只是禁用它。

有关如何诊断禁用打印机的建议? 我谷歌和谷歌没有人抱怨这种行为,但重新安装了一切,我不明白为什么它不会发生在其他任何人身上。

ubuntu 16.04

1 个答案:

答案 0 :(得分:0)

我已经看到这种情况发生在像 list 这样的 std 容器被初始化之前(但它在堆栈帧中)之前有一个断点。

问题在于,漂亮打印机试图遍历未初始化的列表,并在查看列表项时抛出异常(无法访问内存)。

gdb 尝试推进并显示下一项,但 Python 漂亮打印机无法移动到下一项,因为 Next 指针不可访问。在 MI 实现中,重复次数没有限制,因此有效地挂起 gdb

作为解决方法,在所有标准容器初始化之后设置一个断点。