J'essaie de travailler avec le démarrage de oprofile et je rencontre un problème à cette étape:
opcontrol --vmlinux=/path/to/vmlinux
Ubuntu n'a pas de paquet appelé vmlinux, et quand je fais un locate vmlinux
, j'obtiens beaucoup de fichiers:
/usr/src/linux-headers-2.6.28-14/arch/h8300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-14/arch/m68k/kernel/vmlinux-std.lds
/usr/src/linux-headers-2.6.28-14/arch/m68k/kernel/vmlinux-sun3.lds
/usr/src/linux-headers-2.6.28-14/arch/mn10300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-14/arch/sh/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-14/arch/x86/boot/compressed/vmlinux_32.lds
/usr/src/linux-headers-2.6.28-14/arch/x86/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-14/include/asm-generic/vmlinux.lds.h
/usr/src/linux-headers-2.6.28-15/arch/h8300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-15/arch/m68k/kernel/vmlinux-std.lds
/usr/src/linux-headers-2.6.28-15/arch/m68k/kernel/vmlinux-sun3.lds
/usr/src/linux-headers-2.6.28-15/arch/mn10300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-15/arch/sh/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-15/arch/x86/boot/compressed/vmlinux_32.lds
/usr/src/linux-headers-2.6.28-15/arch/x86/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-15/include/asm-generic/vmlinux.lds.h
/usr/src/linux-headers-2.6.28-16/arch/h8300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-16/arch/m68k/kernel/vmlinux-std.lds
/usr/src/linux-headers-2.6.28-16/arch/m68k/kernel/vmlinux-sun3.lds
/usr/src/linux-headers-2.6.28-16/arch/mn10300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-16/arch/sh/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-16/arch/x86/boot/compressed/vmlinux_32.lds
/usr/src/linux-headers-2.6.28-16/arch/x86/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-16/include/asm-generic/vmlinux.lds.h
Laquelle de celles-ci est celle que je recherche?
vmlinuz
cela nécessite un noyau non compressé.Le moyen le plus simple (et non hacky) d'obtenir
vmlinux
sous Ubuntu est d' ajouter le référentiel ddebs :et installez les symboles de débogage du noyau:
vmlinux
alors peut être trouvé ici:la source
Hm, je voulais juste mettre cela en commentaire à la réponse ci-dessus par @paxdiablo, mais vous ne trouvez pas le bouton de commentaire? Quoi qu'il en soit ..
Le fait est que le
vmlinuz
fichier est compressé - et à des fins de débogage, vous avez besoin d'un fichier non compressévmlinux
(et de préférence un construit avec des symboles de débogage - qui par défautvmlinuz
fournis avec Ubuntu n'ont pas, car ils sont dépourvus de symboles).Maintenant, il est possible de décompresser un fichier
vmlinuz
dans unvmlinux
fichier - mais ce n'est pas anodin; vous devez d'abord trouver un décalage d'octet à l'vmlinuz
endroit où le fichier compressé commence, puis utiliserdd
etzcat
décompresser uniquement la partie nécessaire. En détail, cela est expliqué dans: " [ubuntu] Comment tracer ce bogue? - Forums Ubuntu - post # 4 "; en bref, voici mon exemple de journal de commande de terminal, basé sur ce post:Eh bien, j'espère que cela vous aidera,
À votre santé!
la source
extract-vmlinux
: git.kernel.org/?p=linux/kernel/git/torvalds/…vous pouvez télécharger la source et compiler la vôtre en utilisant la commande suivante:
ou vous pouvez télécharger le package ddeb ici et l'installer en
sudo dpkg -i linux-image-3.2.0-60-virtual-dbgsym_3.2.0-60.91_amd64.ddeb
la source
C'est une vieille question, et les anciennes réponses ne fonctionnent plus pour moi (Ubuntu 14.04).
Tout d'abord,
vmlinux
est facultatif pouroprofile
, vous n'en avez besoin que pour montrer ce qui se passe à l'intérieur du noyau, le profilage de l'espace utilisateur peut être fait sans lui. En savoir plus dans le doc .Si vous en avez encore besoin
vmlinux
, ajoutez le dépôt ddebs (pris sans vergogne sur le wiki d'ubuntu ):Installez ensuite les symboles de débogage pour votre noyau . Vous devez le faire chaque fois que vous mettez à niveau votre noyau, après le redémarrage pour
uname
obtenir la bonne version du noyau. N'hésitez pas à supprimer les packages associés aux anciens noyaux.Une fois ce package installé, vous trouverez le
vmlinux
fichier ici :la source
Voir https://bugs.launchpad.net/ubuntu/+source/linux/+bug/289087
la source
Les paquets qui contiennent le noyau linux (le fichier vmlinuz) sont appelés linux-image-VERSION-ARCH dans Debian / Ubuntu.
Vous pouvez les lister avec la commande
dpkg -l linux-image-*
, et pour le paquet installé (il a laii
marque dans la première colonne) vous pouvez obtenir une liste de fichiers avecdpkg -L linux-image-VERSION-ARCH
, par exempledpkg -L linux-image-2.6.31-17-386
pour une installation récente de Karmic.Notez que
l
c'est en minuscule dans la première commande et en majuscule dans la seconde.la source
Essayez la commande suivante:
généralement le vmlinux se trouve dans / usr / lib / debug / après l'installation
la source
il devrait être dans votre racine (/). Dans ubuntu 8.10, c'est un lien pointant vers /boot/vmlinuz-2.6.28-16-generic
faire un
tu devrais le trouver
PS: pas sûr du nom de chemin exact.
la source