小编Zas*_*kar的帖子

为什么 gdb 在 Windows 中这么慢?

我最近注意到在 Windows 中在 gdb 中运行程序会使其变慢,我想知道为什么。

下面是一个例子:

  • 它是一个纯 C++03 项目,使用 mingw32(gcc 4.8.1,32 位)编译。
  • 它与 libstdc++ 和 libgcc 静态链接,不使用其他库。
  • 它是一个 CPU 和内存密集型非并行进程(网格编辑操作、大量新闻和删除以及对涉及的数据结构的查询)。
  • 问题不在于启动时间,整个过程慢得让人痛苦。
  • 调试构建 (-O0 -g2) 在 gdb 外运行 8 秒,但在 gdb 内运行 140 秒。
  • 从命令行测试,只需启动 gdb 并输入“run”(未定义断点)。
  • 我还测试了一个发布版本(优化的,没有调试信息),它在 gdb 中仍然慢得多(3 秒 vs 140 秒;是的,它与 gdb 中未优化的版本花费的时间相同)。
  • 使用来自 mingw32 项目的 gdb 7.5 和 7.6 以及我编译的 gdb 7.8 进行了测试(所有这些都没有 python 支持)。
  • 我通常在 GNU/Linux 机器上开发,在那里我无法注意到运行与不运行 gdb 之间的速度差异。

我想知道 gdb 正在做什么使它运行如此缓慢。我对调试器的工作原理有一些基本的了解,但我不知道它在这里做什么,这次谷歌搜索没有帮助我。

c++ windows gdb mingw

3
推荐指数
1
解决办法
2303
查看次数

标签 统计

c++ ×1

gdb ×1

mingw ×1

windows ×1