Quelles sont les méthodes de débogage de programme sous Linux ?

王林
Libérer: 2019-12-06 11:01:19
original
3796 Les gens l'ont consulté

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 命令
Copier après la connexion

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.

Quelles sont les méthodes de débogage de programme sous Linux ?

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
Copier après la connexion

'-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.

Quelles sont les méthodes de débogage de programme sous Linux ?

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!