我正在以下方式运行"perf":
perf record -a --call-graph -p some_pid
perf report --call-graph --stdio
然后,我看到了这个:
1.60% my_binary my_binary [.] my_func
|
--- my_func
|
|--71.10%-- (nil)
| (nil)
|
--28.90%-- 0x17f310000000a
我无法看到哪些函数调用了my_func()。我看到的是"nil"和"0x17f310000000a",这是怎么回事?我做错了什么吗?这可能不是一个调试信息问题,因为有些符号被显示而另一些则没有。
更多信息:
- 我正在运行CentOS 6.2(内核版本为2.6.32-220.4.1)。
- perf rpm - perf-2.6.32-279.5.2.el6.x86_64。
-fno-omit-frame-pointer
,因此回溯的fp
方法无法进入/通过它们的函数。对于libc6,perf record with --call-stack fp fails to unwind main function提到一些发行版具有带有帧指针编译版本的libc6-prof包,旨在与分析器一起使用。 - Peter Cordes