2012-03-01 20 views
1

我在尝试配置我的程序时遇到问题。在生成文件中使用gprof

我seperately编译每个函数是这样的:

function1.o:  function1.cpp 
    g++ -g -pg -z -c function1.cpp 

然后我的一切联系在一起是这样的:

exec: function1.o function2.o function3.o main.o 
    g++ -g -pg -z -c -o exec function1.o function2.o function3.o main.o 

但是,当我与./exec运行该程序,然后用gprof exec配置文件中的数据,我没有分析数据,它这样说:

granularity: each sample hit covers 4 byte(s) no time accumulated 

我做错了什么?

+1

你有没有考虑过使用valgrind-callgrind和kcachegrind呢?我有一个类似的问题,无法使用gprof获得CMAKE,最终使用callgrind。 kcachegrind可视化是有帮助的。 – 2012-03-01 17:51:31

+0

为什么你认为这个问题与使用'make'有关?如果不使用'make'手动编译,您是否看不到问题? – eriktous 2012-03-02 12:44:59

回答

0

很可能您的程序运行时间不足以让gprof收集任何样本。

您可以通过多次执行主循环来任意增加运行时间。

如果您在Linux上运行,请允许我也推荐perf这是一个非常好的分析工具。

相关问题