Formation LINUX Debug Kernel
Objectifs
Identifier et utiliser les différentes sources d’information relatives au fonctionnement du noyau Linux.
Collecter de manière exhaustive les informations liées à un dysfonctionnement du noyau en utilisant des outils comme debugfs et pstore.
Analyser les informations de debug recueillies, en utilisant des outils comme gdb, addr2line et crash.
Configurer le noyau Linux pour améliorer les capacités de debug, en utilisant des options comme kdump, kexec et printk.
Utiliser les outils de debug spécifiques au noyau Linux, tels que System.map, qemu, kgbd et ftrac.
Pré-requis
Participants
Programme de formation
SYSTÈMES DE FICHIERS ET DEBUG
-
Système de fichiers virutel procfs
-
Système de fichiers virutels sysfs
-
Collecter des informations de debug avec debugfs
-
Stocker des informations de manière persistente 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
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
-
crash : un outil d'analyse dédié au kernel
-
printk : un outil d'aide à l'analyse
-
Définir un format de message avec pr_*
-
Extraire le device et son driver avec dev_*
-
printk versus dev_* ?