我使用以下选项集构建自己的内核。

CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_INFO=y

因此,我假设生成的vmlinux文件将具有所有必需的debuginfo。

我在计算机上安装了该内核,并将vmlinux文件放在/boot/下。
但是,当我尝试执行性能注释时,它并不会在汇编代码旁边显示源代码。它仅显示汇编代码和c函数名称,而不显示整个源代码(我尝试在注释期间切换“s”)。

这是我的perf命令。
#perf record -g -a -e cycles:k sleep 5
#perf report -f -g -s symbol
#perf annotate -f -s <kernel function name> > annotate_<kernel_function>.txt

我在这里想念什么?我需要单独安装debuginfo软件包吗?

问候,
阿斯蒂

最佳答案

用于构建内核rpm的binrpm-pkg目标不会生成debuginfo,因为它禁用了debuginfo软件包的生成,您可以尝试执行此操作,在内核源代码树中打开scripts/package/mkspec,然后搜索echo "%define debug_package %{nil}"行,注释或删除此行,然后尝试重新建造。

原因是此行明确告知rpmbuild跳过debuginfo软件包。

见链接:

https://github.com/torvalds/linux/blob/9256d5a308c95a50c6e85d682492ae1f86a70f9b/scripts/package/mkspec#L45

关于linux - 如何从vmlinux安装debuginfo软件包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36672177/

10-11 10:36