2011-09-30 23 views
6

Trước hết tôi đang chạy MacOSX 10.7.1. Tôi đã cài đặt tất cả đúng, Xcode 4 và tất cả các thư viện, để làm việc với C lenguage.lệnh gprof không tạo đúng out.txt

Tôi gặp sự cố khi chạy lệnh gprof trong trình bao. Tôi sẽ giải thích từng bước những gì tôi đang làm và đầu ra tôi nhận được.

Bước 1:

~ roger$ cd Path/to/my/workspace 
~ roger$ ls 

Output (Bước 1):

queue.c   queue.h   testqueue.c 

Bước 2:

~ roger$ gcc -c -g -pg queue.c 
~ roger$ ls 

Output (Bước 2):

queue.c   queue.h   queue.o   testqueue.c 
.210

Bước 3:

~ roger$ gcc -o testqueue -g -pg queue.o testqueue.c 
~ roger$ ls 

Output (Bước 3):

queue.c   queue.h   queue.o   testqueue  testqueue.c 

Bước 4:

~ roger$ ./testqueue 
~ roger$ ls 

Output (Bước 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 

Bước 5 :

~ roger$ gprof -b testqueue gmon.out > out.txt 
~ roger$ nano out.txt 

Output (Bước 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 

Cuối cùng. Tệp đầu ra sẽ hiển thị thông tin như sau:

% 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 
... 

Và nó hiển thị trường trống.

Tôi đã tìm kiếm ở đây và tôi thấy không có gì hữu ích cả. Tôi google nó nhưng điều tương tự.

Tôi sẽ rất biết ơn Nếu có ai có thể giúp tôi.

+0

Bạn có thể làm [tốt hơn so với gprof] (http://stackoverflow.com/câu hỏi/1777556/lựa chọn thay thế-to-gprof/1779343 # 1779343). –

Trả lời

10

gprof không hoạt động trên OS X. Hệ thống gọi nhu cầu của nó đã bị xóa vài phiên bản trước. Không rõ tại sao tiện ích vẫn vận chuyển. Các lựa chọn thay thế là sử dụng dtrace và/hoặc mẫu.