2011-09-30 51 views
6

首先,我正在運行MacOSX 10.7.1。我安裝了所有正確的,Xcode 4和所有的庫,以使用C語言。gprof命令沒有創建正確的out.txt

我遇到麻煩在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

你可以這樣做(http://stackoverflow.com [比gprof的好] /問題/ 1777556 /替代品對gprof的/ 1779343#1779343)。 –

回答

10

gprof在OS X上無法使用。它需要的系統調用在幾個版本之前被刪除。目前尚不清楚爲什麼公用事業仍在運送。替代方案是使用dtrace和/或樣本。