【发布时间】:2012-01-31 22:12:44
【问题描述】:
我正在使用 NetBeans 7 作为我的 IDE,在 Windows 7 的 mingw32 下用 g++ 编写软件渲染器。
我最近一直需要对其进行剖析,而现在我已经完成了对结构的铺设,这种需求已经达到了临界点。我环顾四周,在我看来,this answer 显示出最大的希望是同时跨平台并保持简单。
这种方法的要点是,可能最基本(在许多方面,最准确)的分析/优化方法是不时地直接对堆栈进行采样,然后停止执行......不幸的是,NetBeans 不会暂停。所以我正在尝试找出如何直接使用 gdb 进行采样。
我对 gdb 了解不多。不过,我可以从手册页中看出,您在运行可执行文件之前设置了断点。这对我没有帮助。
有谁知道将 gdb(或其他 gnu 工具)用于以下任一的简单方法:
- 当我这么说时对堆栈进行采样(最好)
- 在给定时间段内以随机间隔抽取一大堆样本
...给出我所说的配置?
【问题讨论】:
-
在某个文件和某行或某个类的某个方法处设置断点对您没有帮助吗? unknownroad.com/rtfm/gdbtut/gdbbreak.html
-
@Yaniro,遗憾的是没有。正如我链接到的那个答案中所述,它需要进行时间间隔采样,才能达到预期的效果。如果我只在代码中的特定位置执行此操作,我将看不到大部分时间都花在了哪里,我只会看到断点所在的那些位置。
标签: c++ debugging netbeans gdb gnu