GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande Linux Strace

Dans cet article, nous allons apprendre à utiliser Linux Strace Command. Strace est un puissant outil de ligne de commande pour le débogage et le dépannage des programmes sous Linux OS. Il capture et enregistre tous les appels système effectués par un processus et les signaux reçus par le processus.

Il affiche le nom de chaque appel système avec ses arguments entre parenthèses et sa valeur de retour à l'erreur standard ; vous pouvez également le rediriger éventuellement vers un fichier.

Normalement, strace est disponible par défaut s'il n'est pas présent dans votre système d'installation strace en utilisant la commande suivante :

dnf install strace

Vous pouvez soit exécuter une commande avec strace, soit lui transmettre un PID à l'aide de l'option -p comme dans les exemples suivants :

Tracer les appels du système de commande Linux :

Dans cet exemple, nous exécuterons simplement une commande "df -h" suivie de strace pour suivre les appels système pour la commande df -h.

strace df -h

La sortie ressemblera à ceci :

À partir de la sortie ci-dessus, vous pouvez voir différents types d'appels système effectués par la commande df -h, par exemple "open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) =3″

Où,

  • open - est le type d'appel système
  • (“/etc/ld.so.cache”, O_RDONLY|O_CLOEXEC) – argument d'appel système
  • 3 - valeur de retour de l'appel système

Tracer le PID du processus Linux :

Si un processus est déjà en cours d'exécution, vous pouvez le tracer en passant simplement son PID à strace; cela remplira votre écran avec une sortie continue qui montre les appels système effectués par le processus, pour y mettre fin, appuyez sur CTRL + C.

strace -p 7302

Pour obtenir un résumé du temps total, des appels et des erreurs d'un appel système, utilisez l'indicateur -c comme indiqué ci-dessous ;

strace -pc 7583

Imprimer le pointeur d'instruction pendant l'appel système :

Le drapeau -i affiche le pointeur d'instruction lors de chaque appel système effectué par le programme.

strace -i df -h

Afficher l'heure de chaque ligne de sortie de trace :

Vous pouvez également imprimer l'heure actuelle pour chaque ligne dans la sortie de trace, en passant l'indicateur -t.

strace -t df -h

Temps de commande d'impression passé en appels système :

Pour afficher la différence de temps entre le début et la fin de chaque appel système effectué par un programme, utilisez l'option -T.

strace -T df -h

Tracer uniquement les appels système spécifiques :

Dans la commande ci-dessous, trace=write est connue comme une expression qualificative, où "trace" est un qualificatif (les autres incluent signal, abbrev, verbose, raw, read ou write) et "write" est la valeur du qualificatif.

La commande suivante montre en fait les appels système pour imprimer la sortie df -h sur la sortie standard.

strace -e trace=write df -h

Certaines commandes supplémentaires concernant le qualificateur de trace sont les suivantes :

strace -e trace=open,close df -h
strace -e trace=open,close,read,write df -h
strace -e trace=all df -h

Tracer les appels système en fonction d'une certaine condition :

Nous verrons comment tracer les appels système relatifs à une classe d'événements donnée. La commande suivante peut être utilisée pour tracer tous les appels système impliquant la gestion des processus.

strace -q -e trace=process df -h

Ensuite, pour tracer tous les appels système qui prennent un nom de fichier comme argument, utilisez la commande suivante :

strace -q  -e trace=file df -h

De même, vous pouvez tracer tous les appels système liés au réseau, à la mémoire et aux signaux à l'aide des commandes suivantes :

strace -q -e trace=memory df -h
strace -e trace=network df -h
strace -e trace=signal df -h

Rediriger la sortie de trace vers le fichier :

Pour écrire les messages de trace envoyés à l'erreur standard dans un fichier, utilisez l'option -o. Cela signifie que seule la sortie de la commande est imprimée à l'écran, comme indiqué ci-dessous.

strace -o strace_message.txt df -h

Tous les appels système ont été écrits dans le fichier strace_message.txt. Utilisez la commande cat pour voir les appels système.

cat strace_message.txt

Afficher la sortie de débogage de Strace :

Pour afficher les informations de débogage pour l'outil strace, utilisez l'indicateur -d.

strace -d df -h

En conclusion, strace est un outil pour diagnostiquer la cause de l'échec du programme. c'est un outil puissant pour le débogage et le dépannage. Il est pratiquement utile aux administrateurs système expérimentés, aux programmeurs et aux pirates informatiques.


Linux
  1. Comment utiliser la commande Linux ftp

  2. Comment utiliser la commande Disown sous Linux

  3. Comment utiliser la commande Su sous Linux

  4. Comment utiliser la commande d'écran Linux

  5. Comment utiliser les commandes strace et ltrace sous Linux

Comment utiliser la commande d'arrêt de Linux

Comment utiliser grep sous Linux

Comment utiliser la commande Mkdir sous Linux

Comment utiliser la commande fd sur le système Linux

Comment utiliser la commande jobs sous Linux

Comment utiliser la commande screen sous Linux