我正在尝试在运行 OSX 10.5.7 的计算机上使用 gprof 分析 C++ 应用程序。
我以通常的方式使用 g++ 进行编译,但使用 -pg 标志,运行应用程序并尝试使用 gprof 查看调用图。
不幸的是,我的调用图包含所有时间列的全零。 “被调用”列中的值具有合理的值,因此看起来像是对某些内容进行了分析,但我对缺乏其他数据感到困惑。
我的所有源文件都以类似的方式编译:
g++ -pg -O2 -DNDEBUG -I./ -ansi -c -o ScenarioLoader.o ScenarioLoader.cpp
然后,我运行“ar”将所有目标文件捆绑到一个库中。
后来,我链接并运行 gprof,如下所示:
g++ -pg -lm -o vrpalone vrpalone.o ../src/atomicprof.a lastbuild.o
./vrpalone
gprof gmon.out | less
有任何想法吗?
如果您的程序以非干净的方式终止,那么配置文件数据将无法正确写入 - 您的程序如何退出?
无论如何,我强烈建议使用Shark http://developer.apple.com/tools/sharkoptimize.html而不是 gprof - 它非常易于使用,并且在几乎所有方面都优于 gprof - 并且不需要您重新编译程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)