0
votes

Imprimer des déclarations de débogage au moment de l'exécution en C par fonction

Je veux comprendre s'il existe un moyen d'imprimer des déclarations de débogage pour une méthode particulière dans le programme C.

Par exemple:

dire que j'ai une fonction principale qui appelle d'autres fonctions abc () , def () et xyz () . Chacune de ces méthodes a quelques déclarations d'impression pour le but de journalisation du débogage. Si je active la macro de débogage actuellement tous les messages de débogage des fonctions sont imprimés, Ehich crée un fichier journal important. Dis que j'ai eu un problème dans la fonction xyz () et je veux juste allumer les relevés de débogage de cette fonction, comment je peux y parvenir dans C?


1 commentaires

Créez différents macrocs pour chaque fonction #define débog_abc #define debug_def #define debug_xyz


3 Réponses :


2
votes

Pour une solution très simple, vous pourrez peut-être le faire avec une compilation conditionnelle et nommer vos macros différemment en fonction de ce qu'ils seront utilisés pour (ou de).

Par exemple, vous pourriez avoir quelque chose comme (pseudo- Code): xxx

Ajoutez quelque chose de similaire pour le def et xyz fonctions.

Pour activer la journalisation uniquement de la fonction abc , définissez uniquement activer_log_abc mais pas d'autre lors de la construction. Pour activer abc et xyz puis définissez les deux activer_log_abc et activer_log_xyz .

avec ça Dit, si vous voulez un contrôle plus avancé et éventuellement en capable de modifier de telles choses à Rtun-Time, je vous recommande vraiment d'essayer de trouver une bibliothèque troisième partie qui peut le faire pour vous.


0 commentaires

1
votes

Une solution sans macros mais nécessitant une codage C et utiliser une variable d'environnement qui évite de recompiler: xxx

exécution: xxx


0 commentaires

1
votes

C'est ce que j'aime faire: xxx

changer simplement le log_abc / log_def / log_xyz pour permettre la désactivation de la journalisation de chaque fonction.

Infact dans mes propres projets J'utilise une variation de cela. Je passe aussi __ fichier __ et __ ligne __ de sorte que l'enregistreur puisse me montrer le fichier et le numéro de ligne du message du journal - facilite le débogage.

Plus important encore, au lieu d'utiliser le nom de la fonction, je définis les catégories de journal et la gravité du journal. Donc, ma journalisation ressemble à ceci: xxx

et je peux activer et désactiver des catégories individuelles, et spécifier également la gravité minimale.


0 commentaires