我正在尝试在运行OSX 10.5.7的计算机上使用gprof分析C++应用程序。
我以通常的方式使用g++进行编译,但是使用-pg标志,运行应用程序并尝试使用gprof查看调用图。
不幸的是,我的调用图包含所有时间列的全零。 “被叫”列中的值具有合理的值,因此似乎已对其进行了概要分析,但我对缺少其他数据感到困惑。
我所有的源文件都以类似的方式编译:
g++ -pg -O2 -DNDEBUG -I./ -ansi -c -o ScenarioLoader.o ScenarioLoader.cpp
然后,我运行'ar'将所有目标文件 bundle 到一个库中。
稍后,我这样链接并运行gprof:
g++ -pg -lm -o vrpalone vrpalone.o ../src/atomicprof.a lastbuild.o
./vrpalone
gprof gmon.out | less
有任何想法吗?
最佳答案
如果您的程序以非清除方式终止,那么配置文件数据将无法正确写入-程序如何退出?
无论如何,我强烈建议您使用Shark而不是gprof-它非常易于使用,并且几乎在所有方面都优于gprof-并且不需要您重新编译程序。
关于c++ - gprof报告没有时间累积,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1030829/