Ce guide couvre comment utiliser ltrace et les exemples d'installation et d'utilisation pour vous aider à démarrer.
Installation de Ltrace dans Linux
Pour Debian Systems, LTRACE est installé en utilisant APT via la commande ci-dessous.
$ sudo apt install ltrace
Pour Rhel ou Centos, la commande est:
$ sudo yum install ltrace
Comment utiliser ltrace
Vous pouvez facilement utiliser LTrace avec un programme en utilisant la syntaxe ci-dessous.
$ ltrace [Programme] [Options]
Par exemple, créons des fichiers aléatoires à l'aide du touche commander et utiliser ltrace pour voir comment ils se comportent.
$ ltrace touch file1.txt 2.txt 3 4
Il ne renvoie qu'un statut de sortie de 0 Pour montrer que les fichiers ont été créés. Ici, pas beaucoup d'activités se déroulent, mais si nous essayons de créer un fichier d'archive où différents appels dynamiques sont impliqués, nous obtiendrons plus de détails.
Nous utiliserons le -F Flag, qui trace l'enfant traite lorsqu'ils sont créés par le processus. Nous commençons par créer un fichier d'archives, puis le comprimant lors du traçage des processus enfants, comme dans l'image ci-dessous.
Avec ltrace, le -p L'option permet de tracer les appels dynamiques d'un processus en cours d'exécution en utilisant son identifiant de processus.
$ ltrace -p [process-id]
Dans l'exemple ci-dessous, nous utilisons LTRACE sur un processus en cours d'exécution avec un ID de 47168.
Le -r L'option LTrace affiche l'horodatage relatif associé à chaque ligne de trace. Par exemple, lorsque vous utilisez le chat Commande Pour créer un fichier, nous pouvons utiliser le -r option comme dans la sortie ci-dessous.
L'horodatage s'affiche ci-dessous après l'interruption. Similaire à l'horodatage relatif est le -t, qui ajoute l'heure de la journée associée à chaque ligne de trace. Vous pouvez utiliser -tt Pour inclure les microsecondes.
Dans notre cas, nous exécutons un simple processus LTRACE, mais vous pouvez voir que l'heure de la journée s'affiche à gauche.
Utilisez le -S Indicateur pour afficher la bibliothèque et les appels système associés à un processus.
Jusqu'à présent, nous avons vu comment utiliser LTRACE et afficher les résultats sur la sortie d'erreur standard. Si vous avez besoin de rediriger la sortie vers un fichier, le -o Le drapeau a votre dos. Par exemple, pour stocker la bibliothèque et les appels système récupérés dans l'exemple ci-dessus dans un fichier nommé démo1.SMS, La commande sera:
$ ltrace -o Demo1.txt -s ls
Le fichier est créé une fois que nous exécutons LTRACE, et si nous l'ouvrons, nous voyons que le contenu est similaire à l'exécution de la même commande dans la sortie d'erreur standard. Rediriger la sortie vers les fichiers est un bon moyen de stocker les résultats pour référence et de garder votre terminal propre.
Parfois, vous devez spécifier les appels de la bibliothèque à utiliser avec LTRACE. Il est possible de le faire en utilisant le -e option. Il vous suffit d'utiliser une chaîne de règles et de spécifier les règles à l'aide de modèles qui identifient soit la bibliothèque Sonname ou la noms de symbole. Vous pouvez voir la page manuelle pour mieux comprendre le travail avec une chaîne de règles et de modèles, mais la syntaxe générale est la suivante.
$ ltrace -e [chaîne-rules] [Programme]
Remplace le rupture de chaîne avec le modèle et ajouter le programme pour intercepter les appels de bibliothèque dynamique; Tu devrais être prêt à partir.
Conclure
La commande Ltrace Linux est idéale pour intercepter et enregistrer tous les appels de bibliothèque dynamique sur votre système. Ce guide a couvert les différentes façons d'utiliser LTRACE en utilisant divers exemples. En utilisant ce guide, vous pouvez désormais facilement contourner LTRACE.