Services de diagnostic

La bibliothèque Microsoft Foundation Class fournit de nombreux services de diagnostic qui rendent vos programmes plus faciles de débogage. Ces services de diagnostic comprennent des macros et fonctions globales qui vous permettent de suivre la mémoire de de votre programme affectations, vider le contenu des objets au moment de l'exécution et imprimer des messages de débogage pendant l'exécution. Les macros et fonctions globales pour les services de diagnostic sont regroupées dans les catégories suivantes:

Ces macros et fonctions sont disponibles pour toutes les classes dérivées de CObject dans les versions Debug et Release de MFC. Cependant, tous sauf DEBUG_NEW et vérifier ne rien dans la version.

Dans la bibliothèque de débogage, tous les blocs de mémoire alloués sont entre crochets avec une série de « garde octets. » Si ces octets sont perturbés par une écriture mémoire errant, les routines de diagnostics peuvent signaler un problème. Si vous incluez la ligne

# define DEBUG_NEW nouveau

dans votre fichier de mise en œuvre, tous les appels à nouveau vont stocker le nombre de nom de fichier et de ligne où l'allocation de mémoire a eu lieu. La fonction CMemoryState::DumpAllObjectsSince affiche cette information supplémentaire, vous permettant d'identifier les fuites de mémoire. Se référer aussi à la classe CDumpContext pour plus d'informations sur la production de diagnostique.

En outre, la bibliothèque Runtime C soutient également un ensemble de fonctions de diagnostic que vous pouvez utiliser pour déboguer vos applications. Pour plus d'informations, voir Les Routines de débogage dans la Référence de la bibliothèque Run-Time.

Macros de Diagnostic général MFC

FAIRE VALOIR Imprime un message et puis abandonne le programme si l'expression spécifiée la valeur false dans la version Debug de la bibliothèque.
ASSERT_KINDOF Tests d'un objet est un objet de la classe spécifiée ou d'une classe dérivée de la classe spécifiée.
ASSERT_VALID Teste la validité interne d'un objet en appelant la fonction membre AssertValid ; généralement substituée de CObject.
DEBUG_NEW Fournit un numéro de nom de fichier et de ligne pour toutes les allocations de l'objet en mode débogage pour aider à trouver les fuites de mémoire.
TRACE Offre printf-comme des capacités dans la version Debug de la bibliothèque.
TRACE0 Semblable à la TRACE , mais prend un format de chaîne sans arguments.
TRACE1 Semblable à la TRACE , mais prend un format de chaîne avec un seul argument.
TRACE2 Semblable à la TRACE , mais prend un format de chaîne avec deux arguments.
TRACE3 Semblable à la TRACE , mais prend un format de chaîne avec trois arguments.
VÉRIFIER Similar to ASSERT mais évalue l'expression dans la version de la bibliothèque ainsi que dans la version Debug.

Fonctions et Variables de Diagnostic général MFC

afxDump Variable globale qui envoie des informations CDumpContext pour la fenêtre sortie du débogueur ou le terminal de débogage.
afxMemDF Variable globale qui contrôle le comportement de l'allocateur de mémoire de débogage.
afxTraceEnabled Variable globale utilisée pour activer ou désactiver la sortie de la macro TRACE.
afxTraceFlags Variable globale utilisée pour activer les fonctionnalités de reporting intégrées de MFC.
AfxCheckError Variable globale utilisée pour tester le passé SCODE pour voir si c'est une erreur et, le cas échéant, lève l'erreur appropriée.
AfxCheckMemory Vérifie que l'intégrité de l'ensemble de mémoire actuellement allouée.
AfxDump Si bien que dans le débogueur, exporte l'état d'un objet pendant le débogage.
AfxDumpStack Générer une image de la pile en cours. Cette fonction est toujours liée statiquement.
AfxEnableMemoryTracking Transforme la mémoire suivi et à l'extérieur.
AfxIsMemoryBlock Vérifie qu'un bloc de mémoire a été alloué convenablement.
AfxIsValidAddress Vérifie qu'une plage d'adresses mémoire est dans les limites du programme.
AfxIsValidString Détermine si un pointeur vers une chaîne valide.
AfxSetAllocHook Permet l'appel d'une fonction sur chaque allocation de mémoire.

Fonctions de Diagnostic objet MFC

AfxDoForAllClasses Exécute une fonction spécifiée sur tous les CObject-classes prenant en charge la vérification de run-time type dérivées.
AfxDoForAllObjects Exécute une fonction spécifiée sur tous les CObject-dérivés des objets qui ont été attribués à nouveau.

Index