Debuguer sous Linux
Présentation
- Description : Cette formation fait le tour des outils de débogage sous Linux C/C++
- Objectifs :
- Savoir débuguer ou analyser le comportement d'un programme sous équipement Linux
Public
- Public :
- Développeurs informatiques
- Prérequis :
- Connaître le C ou les C++
Organisation matérielle
- Durée : 2 jours (14 heures)
- Horaires : 9h00-12h00 13h00-17h00
- Rythme : Continue ou fragmentée
- Mode : Inter ou intra entreprise
- Lieu : Sur site ou en centre de formation
Environnement
- Moyens pédagogiques : Document de support de cours en PDF (210 pages) + document PDF correction d'exercices (2 exercices)
- Moyens techniques :
- PC sous Linux
- Moyen humains : Développeur diplômé troisième cycle plus de dix ans d'expérience en développement et formation
Garanties qualités
- Contrôle de la bonne exécution : Fiche d'appréciation remplie par les stagiaires
- Méthode d'évaluation : Fiche d'évaluation
Programme
Linux
Compilateurs C et C++
- Les compilateurs C et C++
- Le compilateur GCC (suite)
- Usage
- Les étapes de compilation
Options du compilateur
- Options
- Optimisations
- Exemples
- Mécanisme de Warning
- Quelques Warnings utiles :
Les librairies
- Librairies
- Édition de lien
- Utilisation des librairies
- Utilisation de librairie C en C++
- Installation des paquetages dev
Les binutils
- Les binutils
- Binutils (suite)
Problèmes
Mémoire
- Organisation de la mémoire
- Dépassements de tableaux
Problèmes de cadrage des informations
- Initialisation
- Différence de taille en mémoire
- Exemple,Problèmes d'alignement
Perte de mémoire
- Allocation
- Garbage collector
Profilage sans source
strace et ltrace
- Présentation de strace et ltrace
- Intérêt de ltrace et strace
- Options communes de ltrace et strace
- strace avec option -e
- strace : résultat statistique
La mémoire
- Rappels sur la mémoire
- La commande free
- vmstat
- vmstat : Les champs non explicites
lsof, netstat
- smem et pmap
- lsof
- lsof : exemples
Utiliser gdb
Premiers pas
- Présentation de gdb
- Principe gdb
- Signals
- Revenir en arrière
- La pile d'appel
Affichage des variables
- Modification du contexte
- print variable
- Autres affichages
- Printf dynamique
- Break avec liste de commandes
Debug graphiques
ddd
- Clic droit dans le code source
- La fonction Display
- La fonction plot
Eclipse cdt
- Présentation
- Ajout de points d'arrêt
- Propriété du projet en mode Debug
- Accès à la perspective Debug
- Perspective Debug
Cas avancés
Debuguer un programme en exécution
- Contraintes
- Sous gdb ou ddd
- Cas de ddd
- Cas d'Eclipse
Debuguer plusieurs programmes simultanément
- Sélection de la frame comprenant les sources
- Exposé
Debuguer via un core dump
- Cas d'Eclipse et de ddd
- Debug après plantage : core dump
- Tuning de génération du core
- Technique de débugage du core
Debuguer à distance
- Debugage du core via Eclipse
- Debug croisé
- Installation sur l'équipement distant
- Mise en route sur l'équipement host
- Remarques sur le debug croisé
- Mise en oeuvre sur Eclipse
Valgrind
Présentation
- Fonctionnalités
- Diverses informations
- Installer Valgrind
- Philosophie d'utilisation
- Suppression de messages
Exemples
- Recommandations
- Programme C : dépassement de mémoire
- Résultat
- Exemple de programme
Profile de code
- Deux compilations
- Définition
- Avec Valgrind
- Valgrind dans QtCreator
Electric Fence
Présentation
- Introduction
- Installation
- Utilisation
- Exemple sur un programme C fautif
- Compilation du programme C
Utilisation
- Débugage sous gdb
- Exemple de programme C++ fautif
- Compilation du programme
- Débugage
CLang
Présentation de LLVM et CLang
- Présentation de LLVM
- Présentation de Clang
- Principaux Checkers de Clang
Clang en pratique
- Clang dans QtCreator
Dates et tarifs
Inter entreprises
- Tarif : 1000 HT
- Dates : Consultez moi
Intra entreprise
- Région parisienne : 2600 HT
- Autres zones : 2600 HT + Frais de déplacement
- Dates : Consultez moi
Centres de formation partenaires
- Dates : Consultez moi