2016-04-17 1 views
1

Je construis mon propre noyau avec les options suivantes. Donc, je suppose que le fichier vmlinux généré aura tous les debuginfo nécessaires.comment installer les paquets debuginfo à partir de vmlinux

J'ai installé ce noyau dans une machine et j'ai placé le fichier vmlinux sous/boot /. Cependant, lorsque j'ai essayé de faire une annotation de perf, elle n'affiche pas le code source le long du code d'assemblage. Il montre seulement le code d'assemblage et les noms de fonctions c pas tout le code source (j'ai essayé de basculer "s" pendant l'annotation).

Voici mes commandes 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 

Que manque-t-il ici? Dois-je installer des paquets debuginfo séparément?

Cordialement, Atish

+0

ce que distro vous utilisez? – fluter

+0

Fedora 23 et la construction du noyau à partir du dernier code source du noyau. – alex

+0

Les paquets debuginfo sont liés avec la même version du noyau, donc si vous voulez déboguer le noyau que vous avez compilé à partir de la dernière source, vous devrez installer les paquets debuginfo construits par cette compilation, pas à partir du repo. – fluter

Répondre

2

L'objectif binrpm-pkg pour construire le régime du noyau ne génère pas debuginfo car génération désactivé des paquets debuginfo, vous pouvez essayer ce faire, ouvrez scripts/package/mkspec dans l'arborescence des sources du noyau, et rechercher une ligne echo "%define debug_package %{nil}", commentez ou supprimez cette ligne et réessayez de construire.

La raison en est que cette ligne indique explicitement à rpmbuild qu'elle ignore les paquets debuginfo.

Voir le lien:

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