我正尝试在一台运行osx10.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有什么想法吗?
发布于 2009-06-24 02:12:39
我想我可能会分享我最近遇到的this Apple mailing list discussion。
这里描述的行为正是我正在经历的。看起来gprof在OSX上已经崩溃了很长一段时间了。
我求助于Dave Rigby推荐的Shark。
谢谢!
发布于 2009-06-23 19:29:45
如果您的程序以非干净的方式终止,那么配置文件数据将不会被正确写入-您的程序是如何退出的?
无论如何,我强烈推荐使用Shark而不是gprof -它非常容易使用,而且在几乎所有方面都优于gprof -而且不需要重新编译你的程序。
发布于 2011-10-13 14:04:34
可能与OP的问题无关,有一种常见的场景是“没有累积时间”:如果您的代码调用内核或调用不是使用-pg编译的库,您将不会看到在那里花费的时间累积。
https://stackoverflow.com/questions/1030829
复制相似问题