Code::Blocks 调试器在 Kubuntu 上非常缓慢

Posted

技术标签:

【中文标题】Code::Blocks 调试器在 Kubuntu 上非常缓慢【英文标题】:Code::Blocks debugger painfully slow on Kubuntu 【发布时间】:2015-05-06 21:14:58 【问题描述】:

我在我的四台计算机上安装了 Kubuntu 14.10 和 15.04,它们都有不同的硬件(最旧的机器是在 2007 年组装的,而最新的机器是在一个月前组装的。我同时安装了 32 位和 64 位操作系统。 RAM 从 4 GB 到 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 很可能会服务很长时间)。 我想知道是否有其他人遇到过这个问题以及是否有解决方案。总体 Code::Blocks IDE 看起来不错且相当方便,但这个调试器问题阻止了将其用于编写代码和编译以外的目的。

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

【问题讨论】:

【参考方案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 中启用漂亮打印。 我仍然需要在我的其他机器上按照这些说明操作,以确保它们能够解决问题。

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于Code::Blocks 调试器在 Kubuntu 上非常缓慢的主要内容,如果未能解决你的问题,请参考以下文章

code blocks 无法调试

在 Code::Blocks 中配置启动命令

code::blocks 如何打断点

Code::Blocks的汉化主题美化及其调试功能的实现

如何使用Code:Blocks调试C语言程序

如何使用Code:Blocks调试C语言程序