Astuce : le debuggage en couleur [Forums - Outils de développements]
Astuce : le debuggage en couleur [Forums - Outils de développements]
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
Recherche
 
   
 

Parcourir ce sujet :   1 Utilisateur(s) anonymes





Astuce : le debuggage en couleur
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1893
Hors Ligne
Bonjour à tous

je vous fait part d'un truc qui me permet de debugger bien plus confortablement et m'a permis de détecter un bug par hasard sur un code qui fonctionne pourtant depuis des lustres : le debug console avec la couleur !

je bosse sur Kinetis en utilisant KDS (Kinetis Design Studio) qui lui même exploite le SDK (Software Development Kit) de NXP qui est en version 2.x assez bien foutu.

Pour debugger il y a un outil par defaut super qui se lance en 1 ligne de code et qui permett d'envoyer sur une liaison série (SCI, UART, LPUART) des messages de debuggage
TRACE_INFO
TRACE_WARNING
TRACE_ERROR etc qui sont des macro qui gèrent toutes seules la transmission en arrière plan sous it et en gérant le multithread quand on a un OS tel que freertos (tout ça initialisé en 1 ligne je disais)
On peut ensuite afficher grace à un define que les INFO ou les autres TRACE...

bref ça c'était pour parler de la console et du SDK a ceux qui ne connaissent pas.

Maintenant la couleur :
Dans une console telle que celle de l'hyperterminal ou de TeraTerm son homologue très connu on voit défiler du texte monochrome SAUF si on exploite les "Escape sequence" http://ascii-table.com/ansi-escape-sequences.php

Si vous envoyez
TRACE_ERROR("Boulet ! recommences !")
vous le verrez écrit avec la couleur par défaut
Si maintenant vous envoyez à la console
TRACE_ERROR("%c[31mBoulet ! recommences !",27)
comprendre "caractère échappement" (27 en décimal) suivi de '[' '31' et 'm' vous passerez le texte en rouge !
voir la photo jointe pour voir ce que ça donne en vrai.

pour faciliter les choses, j'ai modifié le fichier "debug.h" du sdk pour intégrer ces couleurs dans les macros.
ainsi
#define TRACE_ERROR(...) TRACE_PRINTF( __VA_ARGS__)
devient
#define TRACE_ERROR(...) osSuspendAllTasks(),fprintf(stderr, "%c[31m",27),fprintf(stderr, __VA_ARGS__), fprintf(stderr, "%c[0m",27), osResumeAllTasks()

et ainsi il suffit quand vous taperez
TRACE_ERROR("Boulet ! recommences !")
ce sera affiché en rouge sans avoir rien à préciser.

bon débuggage !

Attacher un fichier:



jpg  couleur.JPG (18.24 KB)
46_599c4515ec627.jpg 279X112 px

Posté le : 22/08 17:00
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer



 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

Astuce : le debuggage en couleur [Forums - Outils de développements]