Linux:perf top,找不到内核符号

时间:2015-10-14 23:45:47

标签: linux linux-kernel symbols perf

Ubuntu 15.04,编译并安装了Linux-Next内核2015-06-04。

然后启动此内核,然后运行perf top,但它表示找不到符号。

如何在perf?

中手动加载内核符号
root@ubuntu-server:/boot# uname -r
4.1.0-rc6.060402222+

root@ubuntu-server:/proc# ls kall*
kallsyms

root@ubuntu-server:/boot# ls | grep 4.1.0-rc6.060402222
config-4.1.0-rc6.060402222+
initrd.img-4.1.0-rc6.060402222+
System.map-4.1.0-rc6.060402222+
vmlinuz-4.1.0-rc6.060402222+

root@ubuntu-server:/# perf top
No kallsyms or vmlinux with build-id 438e4365574d514672888bcfdd6292dbcf71f38f was found
[kernel.kallsyms] with build id 438e4365574d514672888bcfdd6292dbcf71f38f not found, continuing without symbols
Warning:
A vmlinux file was not found.
Kernel samples will not be resolved.
^C

root@ubuntu-server:/proc# perf top -k /boot/vmlinuz-4.1.0-rc6.060402222+
Warning:
The /boot/vmlinuz-4.1.0-rc6.060402222+ file can't be used: Success
Kernel samples will not be resolved.
^C

在Linux-next文件夹中,.config文件启用了内核调试:

CONFIG_DEBUG_KERNEL=y

1 个答案:

答案 0 :(得分:0)

我安装了perf,然后运行" perf top",得到以下消息:

  

警告:

     

找不到vmlinux文件。

     

内核样本将无法解析。

安装" libelf-dev"后,我再次编译了perf并进行安装。 最后,我跑了#34; perf top"并得到正确的结果。

在安装perf时,系统会提供一些提示。例如:

  

config / Makefile:276:找不到libelf,禁用' probe'工具,请安装elfutils-libelf-devel / libelf-dev

     

config / Makefile:327:找不到libunwind,禁用post unwind支持。请安装libunwind-dev [el]> = 1.1

     

config / Makefile:350:找不到libaudit.h,禁用' trace'工具,请安装audit-libs-devel或libaudit-dev

     

config / Makefile:364:找不到俚语,禁用TUI支持。请安装slang-devel或libslang-dev

根据这些提示,也许你可以解决问题。