本文介绍了gprof的命令不正确创造out.txt的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所有我运行的MacOSX 10.7.1第一。我已经安装了所有正确,X code 4和所有的库,使用C lenguage工作。

First of all I'm running MacOSX 10.7.1. I've installed all properly, Xcode 4 and all the libraries, to work with C lenguage.

我有在shell中运行gprof的命令的麻烦。我将解释一步一步,我做什么,我收到的输出。

I'm having troubles running gprof command in shell. I'll explain step by step what I'm doing and the output I'm receiving.

第1步:

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

输出(步骤1):

Output (Step 1):

queue.c         queue.h         testqueue.c

第二步:

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

输出(步骤2):

Output (Step 2):

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

步骤3:

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

输出(步骤3):

Output (Step 3):

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

第4步:

~ roger$ ./testqueue
~ roger$ ls

输出(步骤4):

Output (Step 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

第五步:

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

输出(步骤5):

Output (Step 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

最后。输出文件应显示是这样的:

Finally. The output file should show something like this:

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

和它显示空白字段。

我搜索在这里,我发现没有什么有益的。我谷歌,但同样的事情。

I searched here and I found nothing helpfully at all. I google it but the same thing.

我将非常感激。如果有人可以帮助我请。

I would be very grateful If anyone could help me please.

推荐答案

gprof的并不在OS X上运行的系统调用它需要的是几个版本前移除。目前还不清楚为什么仍然效用船舶。该方案是使用DTrace和/或样品。

gprof does not work on OS X. The system call it needs was removed several versions ago. It's not clear why the utility still ships. The alternatives are to use dtrace and/or sample.

这篇关于gprof的命令不正确创造out.txt的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-12 05:36