Le moyen le plus simple (et non piraté) d'obtenir vmlinux
sous Ubuntu consiste à ajouter le référentiel ddebs :
echo "deb http://ddebs.ubuntu.com $(lsb_release -cs)-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-security main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-proposed main restricted universe multiverse" | \
sudo tee -a /etc/apt/sources.list.d/ddebs.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01
et installez les symboles de débogage du noyau :
sudo apt-get update
sudo apt-get install linux-image-$(uname -r)-dbgsym
vmlinux
alors peut être trouvé ici :
/usr/lib/debug/boot/vmlinux-$(uname -r)
Hm, je voulais juste mettre cela en commentaire de la réponse ci-dessus de @paxdiablo, mais vous ne trouvez pas le bouton de commentaire ? Quoi qu'il en soit..
Le fait est que le vmlinuz
le fichier est compressé - et à des fins de débogage, vous avez besoin d'un vmlinux
non compressé un (et de préférence un construit avec des symboles de débogage - dont le vmlinuz
par défaut -es fournis avec Ubuntu n'en ont pas, car ils sont dépourvus de symboles).
Maintenant, il est possible de déballer un vmlinuz
en vmlinux
fichier - cependant, ce n'est pas trivial ; vous devez d'abord trouver un décalage d'octet dans vmlinuz
où commence le fichier compressé, puis utilisez dd
et zcat
déballer uniquement la partie nécessaire. En détail, ceci est expliqué dans :"[ubuntu] Comment tracer ce bug ? - Forums Ubuntu - post #4"; en bref, voici mon exemple de journal de commandes de terminal, basé sur ce message :
$ od -A d -t x1 /boot/vmlinuz-$(uname -r) | grep '1f 8b 08 00' --colour
0013920 f3 a5 fc 5e 8d 83 70 23 3d 00 ff e0 *1f 8b 08 00*
$ wcalc 13920+12
= 13932
$ dd if=/boot/vmlinuz-$(uname -r) bs=1 skip=13932 | zcat > vmlinux-$(uname -r)
4022132+0 records in
4022132+0 records out
4022132 bytes (4,0 MB) copied, 42,1695 s, 95,4 kB/s
gzip: stdin: decompression OK, trailing garbage ignored
$ file vmlinux-2.6.32-25-generic
vmlinux-2.6.32-25-generic: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped
Eh bien, j'espère que cela vous aidera,
Santé !
vous pouvez télécharger les sources et compiler les vôtres en utilisant la commande suivante :
apt-get source linux-image-$(uname -r)
apt-get build-dep --no-install-recommends linux-image-$(uname -r)
cd linux-2.6.32/
fakeroot make -f debian/rules binary-generic skipdbg=false
ou vous pouvez télécharger le package ddeb ici et l'installer par sudo dpkg -i linux-image-3.2.0-60-virtual-dbgsym_3.2.0-60.91_amd64.ddeb