zTrace
zTrace est une petite DLL (11 Ko) qui permet d'afficher des informations de débogage dans une fenêtre popup et/ou un fichier texte.
L'utilisation d'un thread distinct lui permet de fonctionner en parallèle de l'application que vous souhaitez déboguer.
zTrace est très utile pendant le développement pour vérifier si un programme fonctionne correctement.
Inspiré par l'API Trace de WinDev, la version Win32 originale a été écrite en PowerBASIC.
Initialement, zTrace a été conçu pour déboguer mes propres DLL graphiques (GDImage et WinLIFT).
Mais on peut l'utiliser aussi avec un EXE 32 ou 64-bit.
zTrace utilise exclusivement l'API de bas niveau, car c'est le seul dénominateur commun aux différents langages que j'utilise.
Le source est fourni en pur style SDK, comme documenté dans "Programming windows 5th edition" de Charles Petzold.
zTrace fonctionne en mode UNICODE.
Syntaxe d'utilisation :
zTrace(L"Chaine à afficher en format UNICODE")
Détail du paramètre :
Une seule chaine unicode de type WCHAR, contenant l'information à afficher dans la fenêtre de trace.
Fenêtre de trace :
• L'information passée en paramètre est affichée sur la ligne suivante de la fenêtre zTrace.
• La fenêtre de trace s'ouvre automatiquement lorsque zTrace est appelé. Par défaut, cette fenêtre s'ouvre dans le coin supérieur gauche de l'écran.
• La fenêtre zTrace se ferme automatiquement lorsque vous fermez l'application en cours de débogage.
Rapport zDebug.txt :
• Fonctionne exactement comme la fenêtre zTrace, sauf que l'information est écrite dans un fichier texte.
• Le rapport est automatiquement créé lorsque zDebug est appelé, il est enregistré dans le même dossier que l'application déboguée.
• zDebug peut être utilisé seul ou combiné avec zTrace (lorsque l'option est cochée dans le menu contextuel).
• zDebug est très pratique lorsque l'application déboguée se ferme de manière inattendue ou lorsque l'application a une durée de vie courte, ce qui ne vous laisse pas assez de temps pour lire ce qui est écrit dans la fenêtre zTrace.
• Un nouveau zDebug.txt est créé chaque fois que vous démarrez une nouvelle session zDebug.
Menu contextuel (clic droit sur la fenêtre de trace) :
• Utiliser la barre de défilement horizontale, afficher ou masquer la barre de défilement horizontale.
• Envoyer la sélection à l'imprimante, imprimer les lignes sélectionnées (ou toute la liste si aucune n'est sélectionnée).
• Copier la sélection dans le presse-papiers, copier les lignes sélectionnées (ou toute la liste si aucune n'est sélectionnée) dans le presse-papiers.
• Effacer le contenu, effacer le contenu de la fenêtre de trace.
• Fenêtre de trace toujours au premier plan, ouvrir la fenêtre de trace au-dessus de toutes les autres fenêtres (y compris les fenêtres des autres applications).
• Créer un rapport zDebug.txt, le rapport zDebug.txt est créé dans le dossier de l'application déboguée.
• Enregistrer les coordonnées de la fenêtre, enregistrer la taille et la position de la fenêtre zTrace dans le registre lorsqu'elle est fermée. La prochaine fois, la fenêtre sera affichée en utilisant la taille et l'emplacement précédents.
A titre d'exemple :
Le fichier archive contient 2 projets (zTrace et MC64)
MC64 est un projet GDImage/WinLIFT qui contient des controles graphiques spécifiques qui utilisent zTrace pour expliquer le fonctionnement de l'interface.
Voici la fonction utilisée dans MC64 pour l'appel de zTrace.
Interface spécifique de MC64
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 long zTrace(IN WCHAR* sPtr) { long nRet = 0; static HMODULE hDll; if (hDll == 0) { if (sizeof(LONG_PTR) == 8) { hDll = LoadLibrary(L"zTrace64"); } else { hDll = LoadLibrary(L"zTrace32"); } } if (hDll) { long_proc(WCHAR*); static zProc hProc; if (hProc == 0) { hProc = (zProc)GetProcAddress(hDll, "zTrace"); } if (hProc) { nRet = hProc(sPtr); } } return nRet; }
Partager