[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: analyser un kernelpanic



On Tuesday 17 February 2009 21:22:22 kaliderus wrote:
> Thomas Preud'homme a écrit :
> > On Tuesday 17 February 2009 12:25:04 georges wrote:
> >> Bonjour,
> >>
> >> Suite à des kernelpanic intempestif, je suspecte un probléme hardware
> >> ou un bug dans un module.
> >>
> >> Quel moyen à t'on pour analyser un kernepanic et trouver l'origine?
> >
> > Tout dépend de ton niveau en fait.
> >
> > Si tu t'y connais un peu en noyau tu peux recompiler le noyau avec les
> > informations de deboggages et utiliser kdb et gdb pour le débogguer. Tu
> > verras la ligne exact où ça déconne et la fonction, modulo les macros. Je
> > peux t'expliquer la marche à suivre si tu veux.
>
> C'est un point qui m'intéresse, un lien/tutoriel/bafouille sur le debug
> du noyau serait très bienvenue ...

Pour utiliser le déboggueur du noyau, une fois activé dans le noyau (dans 
kernel hacking) tu dois le lancer avec des arguments supplémentaires à savoir 
:

$console kgdbwait kgdboc=ttyS1 selinux=0

Si tu veux faire ça via kvm/qemu et ne pas utiliser un cable série, voici la 
ligne : 

kvm <youoptions> kernelimage $debug_args $vga_args -serial "stdio" -serial 
"pty"

A un moment le noyau va attendre gdb.

Ensuite tu lances gdb sur vmlinux (et non pas vmlinuz). Quand tu compiles le 
noyau il se trouve à la racine de l'arbre, c'est à dire là où il y a le .config

Ensuite tu fais gdb vmlinux

une fois que tu as le prompt tu fais target remote 
/dev/pts/numeroindiqueparkvm

Et là tu peux faire continue et tu vas voir ton noyau continuer à booter et tu 
auras accès à gdb. Par contre le ctrl - c ne marche pas sur le noyau donc si 
tu veux des breakpoints il faut les mettre avant de faire continue.

Ce que je viens de te décrire est le protocole que j'ai suivi lorsque j'ai dû 
débogguer un code que j'avais fait dans le noyau. Je me suis inspiré de 
l'article suivant : http://linux-hacks.blogspot.com/2008/05/setting-up-kgdb-
using-kvmqemu.html

>
> > Sinon recopie ici les lignes (genre backtrace, ou logs systèmes à défaut)
> > du panic s'il y en a (il me semble qu'il n'y en a que pour le oops)
> >
> >> Georges
> >
> > Cordialement,
> >
> > Thomas Preud'homme
>
> Merci par avance.
> k.

Cordialement,

Thomas Preud'homme


Reply to: