gprof 不显示呼叫信息

Posted

技术标签:

【中文标题】gprof 不显示呼叫信息【英文标题】:gprof Not Showing Call Information 【发布时间】:2018-06-29 17:49:24 【问题描述】:

我使用 gfortran 编译器成功编译并运行了带有 -pg 标志的 Fortran 代码。 gprof 生成一个 gmon.out 文件。当我在文件上运行 gprof 并查看生成的 *.txt 文件时,我看到:

Flat profile:

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total
time   seconds   seconds    calls  Ts/call  Ts/call  name
21.53     24.46    24.46                             fcn_x
12.45     38.60    14.14                             fcn_y
11.36     51.50    12.90                             fcn_z

. . .

等等。大约 180 个函数。

调用列中调用信息为零,并且没有调用图。至少肯定会调用这些函数中的一个。我错过了什么吗?

感谢您的帮助。

【问题讨论】:

准确显示您是如何编译程序的会很有帮助。但猜测一下,包括 -g 有帮助吗? 通过函数指针调用的函数不会生成该信息。此外,动态库可能会带来困难。 @IanBush:尝试包括 -g,但无济于事。蒂姆,不幸的是,我的情况都不是。感谢您的建议。 【参考方案1】:

愚蠢的错误 - 在编译语句中遗漏了“-pg”。仅链接。

【讨论】:

以上是关于gprof 不显示呼叫信息的主要内容,如果未能解决你的问题,请参考以下文章

gprof 输出显示不存在的调用图边缘

Android呼叫转移跳转到拨号盘 “#”号显示不出来

使用gprof显示模板化方法的调用图的参数格式?

GNU profiler(gprof)使用

GNU profiler(gprof)使用

gcc -Ofast -pg 错误的 gprof 结果