Debug kernel
Formez votre équipe au debug kernel !
Nos formations sont proposées en inter-entreprise selon le calendrier proposé ci-dessous. Nous pouvons aussi nous déplacer au sein de votre entité. N’hésitez pas à nous demander plus d’information !

Objectifs du cours
Le point commun de toute plate-forme exploitée sous Linux, serveur, poste de travail, matériel embarqué, est sans aucun doute le noyau Linux. Les tests ou la mise en oeuvre de telles plate-formes dans des conditions plus ou moins extrêmes ou sur du matériel plus ou moins exotique conduisent assez fréquemment à des situations de blocage partiel (oops) ou total (panic) du noyau.
La formation au debug kernel propose d’explorer avec le participant le système qui sous-tend le fonctionnement du noyau pour mieux l’appréhender et connaitre les sources d’information liées.
Elle propose également des outils et des méthodes pour collecter les informations nécessaire à la dernière phase qui consiste en l’analyse du problème rencontré.Le participant est alors capable soit de corriger le dysfonctionnement soit de transmettre l’ensemble de ces informations au niveau compétent en faisant ainsi gagner du temps sur cette phase d’analyse.
Connaître les sources d’information relatives au fonctionnement du noyau Linux.
- Connaître les sources d’information relatives au fonctionnement du noyau Linux
- Savoir collecter de manière exhaustive les informations liées à un dysfonctionnement du noyau
- Savoir analyser les informations recueillies
Prérequis
Les prérequis pour cette formation :
- connaissance du système Linux
- connaissance de base en C
Contenu
JOUR 1
Systèmes de fichiers et debug
- Système de fichiers virtuel procfs
- Système de fichiers virtuel sysfs
- Collecter des informations de debug avec debugfs
- Stocker des informations de manière persistante avec pstore
Debug user space
- Récupérer un core dump
- Utiliser gdb
- Détection de head corruption avec heap / alloc
Erreurs kernel et dialogue avec le noyau
- cktrace
- warn
- Kernel tainted – liste des flags
- oops
- panic
- bug
Configurer son kernel pour améliorer le debug
- debug info
- kdump / kexec
- Configuration de spin lock, mutex, utilisation de locks
- printk
JOUR 2
Les outils de debug kernel
- system.map
- Mettre en place une console série
- Spécificités de l’utilisation d’une console série sous Xen
- Mise en place d’une netconsole
- Utiliser qemu pour debugger
- kgbd (port série)
- crash / kdump
- De l’importance de l’appareil photo
- Tracing / ftrace
- Quelques paramètres kernel utiles :
- panic=oops, vga=, earlyprintk=, ignore_loglevel, initcall_debug, log_buf_len
Analyser les informations recueillies
- Identifier des adresses mémoire avec addr2line
- gdb, le couteau suisse du débogage
- Un outil d’analyse dédié au kernel : crash
- Outil d’aide à l’analyse : printk
- Définir un format de message avec pr_*
- Extraire le device et son driver avec dev_*
- printk versus dev_* ?
Détails pratiques
- Durée : 2 jours
- Niveau : débutant
- Objectif : Savoir collecter de manière exhaustive les informations liées à un dysfonctionnement du noyau et analyser les informations ainsi reccueillies
- Prix : 1 400€ HT
La méthode
La formation alternera apports théoriques et mise en applications de chaque notion abordée.Les participants travailleront à la fois sur des rapports de bugs réels mais aussi sur des simulations de crash grâce à l’émulateur qemu.
Il sera également fait appel à l’expérience des participants qui pourront proposer des informations relatives à une problématique rencontrée.
Prochaines dates de formation
- 09 et 10/02/2023
- 15 et 16/05/2023
- 11 et 12/09/2023
- 04 et 05/12/2023