2016-04-17 2 views
1

Я создаю собственное ядро ​​со следующими настройками.Как установить пакеты debuginfo из vmlinux

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

Я установил это ядро ​​в машину и поместил файл vmlinux в/boot /. Однако, когда я пытался сделать аннотацию, он не показывает исходный код вместе с кодом сборки. Он показывает только код сборки и имена функций 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 по отдельности?

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

+0

, что дистрибутив вы используете? – fluter

+0

Fedora 23 и построение ядра из последнего исходного кода ядра. – alex

+0

пакеты debuginfo связаны с той же версией ядра, поэтому, если вы хотите отлаживать ядро, которое вы скомпилировали из последнего источника, вам нужно будет установить пакеты debuginfo, созданные этим компилятором, а не репо. – fluter

ответ

2

Цель 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

 Смежные вопросы

  • Нет связанных вопросов^_^