Как установить пакеты debuginfo из vmlinux

Я собираю свое собственное ядро ​​со следующими настройками.

CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_INFO=y

Поэтому я предполагаю, что сгенерированный файл vmlinux будет иметь все необходимые debuginfo.

Я установил это ядро ​​на машине и поместил файл vmlinux в / boot /. Однако, когда я попытался сделать аннотацию perf, он не показывает исходный код рядом с кодом сборки. Он показывает только ассемблерный код и имена функций c, а не весь исходный код (я пытался переключать "s" во время аннотирования).

Вот мои команды перфорирования.

#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 отдельно?

С уважением, Атиш

1 ответ

Решение

Цель binrpm-pkg для сборки rpm ядра не генерирует debuginfo, потому что она отключила генерацию пакетов debuginfo, вы можете попробовать сделать это, открыть scripts/package/mkspec в вашем исходном дереве ядра, и найдите строку echo "%define debug_package %{nil}", прокомментируйте или удалите эту строку и попробуйте снова построить.

Причина в том, что эта строка явно сообщает rpmbuild, что пропускает пакеты debuginfo.

Смотрите ссылку:

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

Другие вопросы по тегам