当使用perf报告时,我的程序没有看到任何符号,而是得到如下输出:
$ 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编译,但是在其他工具下运行时也是如此。