Как установить пакеты 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.
Смотрите ссылку: