c++ - Code::Blocks 调试器在 Kubuntu 上运行缓慢

标签 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,因为它的 future 不明朗(而 Eclipse 可能会长期使用)。 我想知道是否有其他人遇到过这个问题以及是否有解决方案。总体而言,Code::Blocks IDE 看起来不错而且相当方便,但是这个调试器问题阻止了将它用于编写代码和编译以外的目的。

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

最佳答案

问题出在单步执行声明未初始化的 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 中启用 pretty-print 。 我仍然需要在我的其他机器上按照这些说明进行操作,以确保它们解决了问题。

关于c++ - Code::Blocks 调试器在 Kubuntu 上运行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30087659/

相关文章:

javascript - 在 Eclipse 中调试 IE6 JavaScript

带有 while 循环的 Python 选择排序返回未改变的数组——为什么?

php - 在 PHPStorm 中调试 PHP 命令行脚本

c++ - 子线程向主线程返回错误数据?

linux - 查找时差的命令

c++ - 错误的 std::vector 构造函数

linux - 如何在shell脚本中将时间命令的输出定向到文件?

linux - 如何使用sudo获取运行命令的pid

c++ - 将 boost 套接字放入 std::map

c++ - 无论如何要在初始化列表之前调用 CoInitialize() 吗?