+33 1 69 88 85 29
Formation :
Debug Kernel
Référence : DEBK
Durée :
2 jours
Niveau :
Expérimenté
Lieu :
Paris ou sur site
Tarif : 1490 € HT
Debug Kernel
Description
La formation Debug Kernel propose d’explorer avec les participants, le système qui sous-tend le fonctionnement du noyau LINUX pour mieux l’appréhender et connaître les sources d’information liées.
Public concerné
Ce cours s'adresse aux développeurs expérimentés.
Objectifs de la formation
- Savoir collecter de manière exhaustive les informations liées à un dysfonctionnement du noyau
- Savoir analyser les informations recueillies
Prérequis
Expérience de programmation sous Linux.
Programme de la formation
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 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
- racing / 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_* ?