我通过以下方式运行“性能”:

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 gcc 选项编译了代码。

    关于linux - 性能分析器中的调用堆栈,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12160449/

    10-13 07:20