2011-09-30 8 views
6

Primero que nada estoy ejecutando MacOSX 10.7.1. He instalado todos correctamente, Xcode 4 y todas las bibliotecas, para trabajar con lenguaje C.El comando gprof no está creando out.txt

Tengo problemas para ejecutar el comando gprof en shell. Explicaré paso a paso lo que estoy haciendo y la salida que estoy recibiendo.

Paso 1:

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

de salida (Paso 1):

queue.c   queue.h   testqueue.c 

Paso 2:

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

de salida (Paso 2):

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

Paso 3:

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

de salida (Paso 3):

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

Paso 4:

~ roger$ ./testqueue 
~ roger$ ls 

de salida (Paso 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 

Paso 5 :

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

de salida (Paso 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 

último. El archivo de salida debe mostrar algo como esto:

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

Y muestra el campo en blanco.

Busqué aquí y no encontré nada útil. Lo googleo pero lo mismo.

Estaría muy agradecido Si alguien pudiera ayudarme, por favor.

+0

Usted puede hacer [mejor que gprof] (http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343 # 1779343). –

Respuesta

10

gprof no funciona en OS X. La llamada al sistema que necesitaba se eliminó hace varias versiones. No está claro por qué la utilidad aún se envía. Las alternativas son usar dtrace y/o muestra.

Cuestiones relacionadas