Maison >Opération et maintenance >exploitation et maintenance Linux >Quelles sont les méthodes de débogage de programme sous Linux ?
1. Utilisez l'instruction 'print'
Il s'agit d'une méthode de base pour déboguer les problèmes. Nous insérons des instructions d'impression à des endroits suspects du programme pour comprendre le flux de contrôle de flux en cours d'exécution du programme et les modifications des valeurs des variables.
Son inconvénient est qu'il nécessite une édition du programme, l'ajout d'instructions « print », et doit être recompilé et réexécuté pour obtenir le résultat. Si le programme à déboguer est relativement volumineux, cette méthode prendra du temps et demandera beaucoup de travail.
2. Utiliser la requête
Dans certains cas, nous devons déterminer l'état et le mappage de la mémoire d'un processus exécuté dans le noyau. Pour obtenir ces informations, nous n'avons pas besoin d'insérer de code dans le noyau. Utilisez plutôt le système de fichiers /proc
. Dans le pseudo système de fichiers de /proc, les informations d'exécution collectées lors du démarrage du système (informations sur le processeur, capacité mémoire, etc.) sont conservées. La sortie de
ls -l /proc
a une entrée nommée d'après l'identifiant du processus dans le système de fichiers /proc pour chaque processus en cours d'exécution dans le système. Des informations détaillées pour chaque processus peuvent être obtenues dans le fichier du répertoire correspondant à l'ID du processus. Il peut également afficher 'ls /proc/pid
'.
Recommandation de didacticiel vidéo gratuit : Tutoriel vidéo Linux
3. Utiliser le suivi
strace et ltrace sont deux outils de traçage. utilisé sous Linux pour tracer les détails d'exécution d'un programme.
strace :
strace intercepte et enregistre les appels système et les signaux qu'ils reçoivent. Pour l'utilisateur, il affiche les appels système, les paramètres qui leur sont transmis et les valeurs de retour. strace peut être attaché à un processus déjà en cours d'exécution ou à un nouveau processus. Il est utile comme outil de diagnostic et de débogage pour les développeurs et les administrateurs système.
Il peut également être utilisé comme un outil pour comprendre le système en traçant différents appels de programme. L'avantage de cet outil est qu'il ne nécessite pas de code source et que le programme n'a pas besoin d'être recompilé.
La syntaxe de base pour utiliser strace est :
strace 命令
Le résultat de strace est très long et nous ne sommes généralement pas intéressés par chaque ligne affichée. Nous pouvons utiliser l'option '-e expr
' pour filtrer les données indésirables.
Utilisez l'option '-p pid
' pour vous lier à un processus en cours d'exécution.
Avec l'option '-o
', la sortie de la commande peut être redirigée vers un fichier.
la trace est filtrée uniquement pour la sortie des appels système.
ltrace :
ltrace suit et enregistre les appels à la bibliothèque dynamique (d'exécution) d'un processus et les signaux qu'il reçoit. Il peut également suivre les appels système effectués par un processus. Son utilisation est similaire à celle du strace. L'option
ltrace command
'-i
' imprime le pointeur d'instruction lors de l'appel de la bibliothèque. L'option
'-S
' est utilisée pour afficher les appels système et les appels de bibliothèque.
la trace capture la sortie de l'appel de bibliothèque 'STRCMP'.
Articles et tutoriels connexes recommandés : Tutoriel Linux
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!