【发布时间】:2011-12-13 03:32:13
【问题描述】:
在一个调试会话期间使用 GDB 进行调试时,它会随着时间的推移变得越来越慢。即使是最简单的操作(例如跨步和跨步)也可能需要几十秒,有时甚至是几分钟。
我正在调试一个相当大的项目(Chromium 浏览器)。我能想到的唯一原因是 gdb 随着时间的推移变得越来越慢,因为它加载了越来越多的符号并且使用它们需要更长的时间。然而 Chromium 将整个代码编译成一个巨大的可执行文件,其中包含所有应该在一开始就加载的符号。因此符号数据库在调试期间不会增长。此外,为什么需要查找符号只是为了执行跨步或步入操作?
在测试时,我尝试将 gdb 与前端(Eclipse、QtCreator、Emacs)一起使用,并从命令行确认这不是 IDE 问题。两个用例都展示了同样的问题,但是它似乎在 IDE 中开始出现得更快(可能是因为 IDE 还加载了监视视图、调用堆栈、线程列表等的符号)。
为什么 GDB 变慢了?它是我的计算机中的设计缺陷、错误还是某些特定问题?有没有比 GDB 更快的免费替代品?
【问题讨论】:
-
对我来说听起来像是内存泄漏
-
@ZMorek:在 GDB 中还是在 Chromium 中?
标签: performance debugging google-chrome gdb chromium