首先,我正在运行MacOSX 10.7.1。我已经正确安装了Xcode 4和所有库,以便与C语言一起使用。
我在shell中运行gprof命令时遇到了麻烦。我将逐步解释我正在做的事情以及我收到的输出。
第1步:
~ roger$ cd Path/to/my/workspace
~ roger$ ls
输出(步骤1):
queue.c queue.h testqueue.c
第2步:
~ roger$ gcc -c -g -pg queue.c
~ roger$ ls
输出(步骤2):
queue.c queue.h queue.o testqueue.c
第3步:
~ roger$ gcc -o testqueue -g -pg queue.o testqueue.c
~ roger$ ls
输出(步骤3):
queue.c queue.h queue.o testqueue testqueue.c
第4步:
~ roger$ ./testqueue
~ roger$ ls
输出(步骤4):
enqueue element 16807
head=0,tail=1
enqueue element 282475249
head=0,tail=2
enqueue element 1622650073
head=0,tail=3
enqueue element 984943658
head=0,tail=4
enqueue element 1144108930
head=0,tail=5
enqueue element 470211272
head=0,tail=6
enqueue element 101027544
head=0,tail=7
enqueue element 1457850878
head=0,tail=8
enqueue element 1458777923
head=0,tail=9
enqueue element 2007237709
head=0,tail=10
queue is full
dequeue element 16807
dequeue element 282475249
dequeue element 1622650073
dequeue element 984943658
dequeue element 1144108930
dequeue element 470211272
dequeue element 101027544
dequeue element 1457850878
dequeue element 1458777923
dequeue element 2007237709
queue is empty
gmon.out queue.h testqueue
queue.c queue.o testqueue.c
第5步:
~ roger$ gprof -b testqueue gmon.out > out.txt
~ roger$ nano out.txt
输出(步骤5):
GNU nano 2.0.6 File: out.txt
granularity: each sample hit covers 4 byte(s) no time propagated
called/total parents
index %time self descendents called+self name index
called/total children
^L
granularity: each sample hit covers 4 byte(s) no time accumulated
% cumulative self self total
time seconds seconds calls ms/call ms/call name
^L
Index by function name
最后。输出文件应该显示如下:
% cumulative self self total
time seconds seconds calls ms/call ms/call name
33.34 0.02 0.02 7208 0.00 0.00 open
16.67 0.03 0.01 244 0.04 0.12 offtime
16.67 0.04 0.01 8 1.25 1.25 memccpy
16.67 0.05 0.01 7 1.43 1.43 write
16.67 0.06 0.01 mcount
0.00 0.06 0.00 236 0.00 0.00 tzset
0.00 0.06 0.00 192 0.00 0.00 tolower
0.00 0.06 0.00 47 0.00 0.00 strlen
0.00 0.06 0.00 45 0.00 0.00 strchr
0.00 0.06 0.00 1 0.00 50.00 main
0.00 0.06 0.00 1 0.00 0.00 memcpy
0.00 0.06 0.00 1 0.00 10.11 print
0.00 0.06 0.00 1 0.00 0.00 profil
0.00 0.06 0.00 1 0.00 50.00 report
...
它显示空白字段。
我在这里搜索,我一点都没有找到任何帮助。我谷歌但是同样的事情。
如果有人能帮助我,我将非常感激。
答案 0 :(得分:10)
gprof在OS X上不起作用。几个版本之前删除了它所需的系统调用。目前尚不清楚为什么公用事业仍在发货。替代方案是使用dtrace和/或样本。