【发布时间】:2013-08-14 09:18:04
【问题描述】:
我的 gprof 在 linux 系统上运行良好。我正在获取样本以及一些呼叫计数信息。所以我在一些函数中添加了 属性 ((hot))。现在它们已经从 gprof 示例输出中消失了,只有我的非热函数被“采样”。热门功能仍然出现在呼叫计数信息中。我该如何解决这个问题?
我怀疑发生了两件事之一。 gprof 过滤它认为是相关地址的内容,并且热函数现在超出此范围,因为它们现在位于 .text.hot 部分中。或者,不知何故,热函数的调试数据存在一些混乱,因此 gprof 忽略了它们。
【问题讨论】:
-
您查看过汇编输出(gcc 选项 -S)吗? text.hot 部分中的调试信息是否有所不同或缺失?
-
我尝试在 Fedora 19 中使用普通的 gcc 工具链来重现这一点,并且 attribute((hot)) 不会以任何方式改变 gprof 行为。您能否发布工具链的详细信息以及用于编译程序的标志?