gprof 命令未创建正确的 out.txt

发布于 2024-12-07 05:49:42 字数 3309 浏览 4 评论 0原文

首先,我运行的是 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
...

并且显示空白字段。

我在这里搜索,但没有发现任何有用的东西。我用谷歌搜索了一下,但结果是一样的。

如果有人能帮助我,我将非常感激。

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.

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.

Step 1:

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

Output (Step 1):

queue.c         queue.h         testqueue.c

Step 2:

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

Output (Step 2):

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

Step 3:

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

Output (Step 3):

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

Step 4:

~ roger$ ./testqueue
~ roger$ ls

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

Step 5:

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

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

And it shows blank field.

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

感情旳空白 2024-12-14 05:49:42

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.

丢了幸福的猪 2024-12-14 05:49:42

不需要在最后一行给出 gmon.out,给出 gprof -b testqueue >输出.txt
请参阅http://www.network-theory.co.uk/docs/ gccintro/gccintro_80.html 以供进一步参考

no need to give gmon.out in the last line, give gprof -b testqueue > out.txt
see http://www.network-theory.co.uk/docs/gccintro/gccintro_80.html for further reference

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文