Garder une trace de l’exécution d’un programme

Problème

Vous souhaitez tracer votre programme de manière passive pour effectuer une analyse des points qui vous intéressent lors de l’exécution. En d’autres termes, au lieu d’intervenir avec des outils tels que strace, truss ou tusc, vous attendez du programme qu’il soit capable de créer des traces de lui-même.

Solution

Utilisez une fonction de journalisation.

Discussion

Si vous souhaitez obtenir des traces de l’exécution de votre programme, vous pouvez lui faire consigner son activité en utilisant une fonction de journalisation. La recette "Créer une fonction de journalisation" vous montre comment créer la vôtre et la recette "Utiliser syslog" explique comment utiliser le journal système avec syslog(). Vous pouvez également utiliser une fonction toute faite, comme l’une de celles fournies dans la bibliothèque glib.

Avec glib, pour écrire une chaîne de caractères dans le journal, nous utilisons g_log(). Le premier argument est le domaine, en général NULL pour les applications. Pour les bibliothèques, cette chaîne de caractères présente l’intérêt, lorsqu’elle est définie, de distinguer les messages issus de celles-ci de ceux issus du programme qui les charge. Le second argument est un niveau d’erreur, à prendre dans la liste suivante :


G_LOG_LEVEL_ERROR ...
Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Récupérer le descriptif de l'erreur
Suivant
Créer une fonction de journalisation