使用时perf report
,我的程序看不到任何符号,而是得到如下输出:
$ perf record /path/to/racket ints.rkt 10000
$ perf report --stdio
# Overhead Command Shared Object Symbol
# ........ ........ ................. ......
#
70.06% ints.rkt [unknown] [.] 0x5f99b8
26.28% ints.rkt [kernel.kallsyms] [k] 0xffffffff8103d0ca
3.66% ints.rkt perf-32046.map [.] 0x7f1d9be46650
这是相当缺乏信息的。
相关程序是用调试符号构建的,该sysprof
工具会显示适当的符号,Zoom 也是如此,我认为它perf
在后台使用。
请注意,这是在 x86-64 上,因此二进制文件是用 编译的-fomit-frame-pointer
,但在其他工具下运行时也是如此。