Commande Linux Strace

Commande Linux Strace
Linux fournit une multitude d'outils de débogage pour le dépannage des services et applications. Un outil bénéfique pour les développeurs est la commande Linux Strace. La commande Strace est un outil de débogage et de dépannage qui intercepte et enregistre les appels du système effectués et reçus par un processus. Il fournit une séquence binaire élaborée du début jusqu'à la fin.

Dans ce didacticiel, nous nous plongeons dans la commande Linux Strace et démontrant quelques exemples d'utilisations.

Syntaxe de commande de base

La commande Strace prend la syntaxe suivante:

$ Strace Options Commande

Comment installer la commande Linux Strace

La plupart des distributions Linux modernes sont expédiées avec un utilitaire Strace par défaut. Cependant, si Strace n'est pas installée sur votre système pour une raison quelconque, suivez les étapes ci-dessous pour l'installer.

Sur Debian / Ubuntu

Si vous exécutez des systèmes basés sur Debian / Ubuntu, exécutez:

$ sudo apt installer strace

Sur Rhel / Centos

$ sudo yum install strace

Pour vérifier que Strace est installée, vous pouvez vérifier sa version comme indiqué.

$ Strace - Version

Voyons maintenant quelques exemples d'utilisations.

Commande de base Strace

Dans son format le plus élémentaire, la commande Strace tracera et affichera les appels du système, les arguments (enfermés en accolades carrés ou parenthèses) et l'appel exécutable.

Dans l'exemple ci-dessous, nous pouvons voir les arguments de l'exécution du script Bonjour.shot, Appelez joint entre parenthèses dans la première ligne.

$ Strace ./Bonjour.shot

À la toute dernière ligne, vous pouvez voir le statut de sortie de la commande, dans ce cas, 0. Cela implique que la commande a été exécutée avec succès sans aucune erreur. Un code de sortie de -1 signifie qu'une erreur a été rencontrée pendant l'exécution.

Comptez les appels du système

Si vous souhaitez obtenir le nombre d'appels système, utilisez le -c Option pour le décompte comme indiqué.

$ Strace -C ./Bonjour.shot

À partir de la sortie ci-dessus, vous pouvez voir le nombre d'appels système effectués, y compris la réalisation des appels.

Afficher les appels système spécifiques avec Strace

De plus, vous pouvez choisir de visualiser la nature des appels système faits avec Strace en utilisant le -e option suivie de la nature de l'appel système. Dans l'extrait indiqué, nous avons affiché les appels du système d'écriture et de lecture.

$ strace -e trace = écrire ./Bonjour.shot
$ strace -e trace = lire ./Bonjour.shot

Trace les appels du système réseau

Vous pouvez restreindre Strace à l'affichage des appels système réseau en spécifiant le type d'appel. Ici. trace = réseau indique que nous avons l'intention d'obtenir l'appel réseau de la commande réseau ping 8.8.8.8 -C 4.

$ strace -e trace = réseau ping 8.8.8.8 -C 4

Appels du système de signal de trace

Pour les appels liés au système, utilisez l'argument comme indiqué dans la commande ci-dessous. La commande imprime le signal-couneur pour le ping 8.8.8.8 -C 4 commande.

$ strace -e trace = signal ping 8.8.8.8 -C 4

Impression de l'horodatage de chaque appel système

Pour extraire l'horodatage pour chaque appel système, utilisez le -r option comme démontré dans la commande suivante.

$ Strace -r ping 8.8.8.8 -C 4

Comme vous pouvez le voir, un horodatage relatif est imprimé pour chaque appel système. Le décalage horaire entre les appels système successifs est capturé et enregistré.

Afficher la durée dépensée pour passer des appels système

De plus, vous pouvez imprimer la durée de temps passé pour chaque appel système en utilisant le -T Option comme indiqué. Le temps passé est indiqué dans la toute dernière colonne comme indiqué.

$ strace -t ping 8.8.8.8 -C 4

Affichez l'heure exacte de chaque appel système

Pour imprimer l'heure réelle ou exacte des appels du système, invoquez le -t Option comme indiqué. Le temps d'horloge en temps réel ou mural est imprimé dans la première colonne.

$ Strace -T ./Bonjour.shot

Afficher le pointeur d'instructions pour chaque appel

Pour imprimer le pointeur d'instructions pour chaque appel système, utilisez le -je option.

$ strace -i ./Bonjour.shot

Enregistrer la sortie des appels système vers un fichier texte

Enfin, la commande Strace vous donne la possibilité d'enregistrer la sortie dans un fichier texte, comme indiqué.

$ Strace -o Sample_output.SMS ./Bonjour.shot

Ici, Sample_Output.SMS est le fichier de sortie, tandis que ./Bonjour.shot est la commande dont nous tracer les appels du système.

Emballer

La commande Strace est un utilitaire de ligne de commande pratique et puissant qui aide à déboguer les applications, les commandes et les processus, surtout si vous n'avez pas le code source disponible. C'est l'outil de choix de choix pour les développeurs de logiciels et les administrateurs système.