Code ::阻止调试器在Kubuntu上慢慢变慢

时间:2015-05-06 21:14:59

标签: c++ linux debugging gdb codeblocks

我在我的四台计算机上安装了Kubuntu 14.10和15.04,它们都有不同的硬件(最老的机器在2007年组装,最近一个月前是最新的。我安装了32位和64位操作系统。 RAM从4到32 GB不等。我已经在它们上使用Code :: Blocks几个月了,我在所有4台机器上都遇到了同样的问题:在调试C ++程序时,集成调试器的速度非常慢。 调试器在断点处停止后,需要10秒到5分钟才能单步执行一行代码。当调试器执行一个步骤时,我的CPU的一个核心由GDB加载100%。并且经常试图通过一行代码永远挂起。之后我必须杀死GDB和已经调试过程。 前段时间我将GDB更新到版本7.9(从7.8),但这并没有解决问题。从命令行调试GDB时我没有减速,所以我怀疑问题出在Code :: Blocks调试器插件中。 我看到很多关于类似问题的抱怨,其中一些据称是由过时的libc6-dbg引起的(更准确地说,调试符号未随Ubuntu和其他基于Debian的发行版一起提供),但重新安装libc6-dbg没有帮助无论是。 我担心在尝试修复此问题一两天后,我会放弃并将切换到Eclipse或其他IDE。看起来Code :: Blocks及其调试器插件已经有几年没有更新(至少,他们的Linux版本)。所以也许我根本不应该使用Code :: Blocks,因为它的未来不明确(而Eclipse很可能长期服务)。 我想知道是否有其他人遇到这个问题以及是否有解决方案。整体代码:: Blocks IDE看起来不错,而且非常方便,但是这个调试器问题阻止了将其用于编写代码和编译之外的其他目的。

更新: 我最终安装了Eclipse for C ++(Luna发行版)。花了一些时间来学习如何使用它。它很慢,有错误,有毛病,并且使用了大量的RAM,但它至少允许我在IDE中调试我的应用程序。现在我100%确定问题出在Code :: Blocks调试器插件中。 我也试过NetBeans,看起来工作正常,但它比Eclipse慢,看起来真的很难看。所以我现在要坚持使用Eclipse,因为似乎没有人愿意修复Code :: Blocks中的调试器插件。

2 个答案:

答案 0 :(得分:1)

问题结果是踩过声明未初始化的std :: string对象的行。这里描述了一个类似(或相同)的问题:

https://sourceware.org/bugzilla/show_bug.cgi?id=12555

当我按照这些说明操作时,Code :: Blocks中调试的问题突然得到修复:

http://wiki.eclipse.org/CDT/User/FAQ#How_can_I_inspect_the_contents_of_STL_containers.3F

关于如何在Eclipse CDT中启用漂亮打印。 我仍然需要在我的其他机器上遵循这些说明,以确保他们解决问题。

答案 1 :(得分:0)

您可以尝试关闭CodeBlock漂亮打印:Settings->Debugger->Default->Enable Watch Scripts = Uncheckedfenv(3)