gdb:如何在循环执行期间暂停?

时间:2012-01-02 15:42:33

标签: c++ debugging netbeans gdb gnu

我正在使用NetBeans 7作为我的IDE在Windows 7中的mingw32下用g ++编写软件渲染器。

我最近需要对其进行描述,而这种需求已达到临界质量,因为我已经过去了解结构。我环顾四周,对我而言this answer显示了同时跨平台和保持简单的最大希望。

这种方法的要点是,可能最基本的(在许多方面,最准确的)分析/优化方法是直接通过暂停执行来直接对堆栈进行采样......不幸的是,NetBeans < em>不会暂停。所以我试图找出如何直接用gdb进行采样。

我对gdb知之甚少。但是,我从手册页中可以看出,您在运行可执行文件之前设置了断点。这对我没有帮助。

有没有人知道一种简单的方法来获取gdb(或其他gnu工具):

  1. 当我这样说(首选)
  2. 时对筹码进行抽样
  3. 在给定时间内随机抽取一大堆样本
  4. ...给出我陈述的配置?

1 个答案:

答案 0 :(得分:55)

您是否曾尝试在gdb中运行可执行文件,然后只想在中断时点击^ C( Ctrl + C )?这应该会引导您进入gdb的提示符,您只需运行where命令查看您的位置,然后使用continue继续执行。

如果您发现自己处于不相关的线程(例如循环UI线程),请使用threadinfo threadsthread n转到正确的线程,然后执行{{1} }。