首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >perf profiler中的调用堆栈

perf profiler中的调用堆栈
EN

Stack Overflow用户
提问于 2012-08-28 21:36:03
回答 2查看 39K关注 0票数 29

我用下面的方式运行"perf“:

代码语言:javascript
复制
perf record -a --call-graph -p some_pid

perf report --call-graph --stdio

然后,我看到了这个:

代码语言:javascript
复制
 1.60%     my_binary  my_binary                [.] my_func
           |
           --- my_func
              |          
              |--71.10%-- (nil)
              |          (nil)
              |          
               --28.90%-- 0x17f310000000a

我看不出哪些函数调用了my_func()。我看到的是"nil“和"0x17f310000000a”。我做错了什么吗?这可能不是一个调试信息问题,因为有些符号会显示,而另一些则不会显示。

更多信息:

内核rpm我正在运行rpm 6.2 ( 2.6.32-220.4.1).

  • perf CentOS - perf-2.6.32-279.5.2.el6.x86_64.
EN

回答 2

Stack Overflow用户

发布于 2012-11-15 20:59:43

确保使用-fno-omit-frame-pointer gcc选项编译代码。

票数 30
EN

Stack Overflow用户

发布于 2012-12-14 00:59:54

您就快到了,您缺少-G选项(您可能需要比系统上安装的perf更新的perf):

代码语言:javascript
复制
$ perf report --call-graph --stdio -G

来自perf help report

代码语言:javascript
复制
   -G, --inverted
       alias for inverted caller based call graph.
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12160449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档