Services de diagnostic
La bibliothèque MFC fournit de nombreux services de diagnostic qui facilitent le débogage de vos programmes.Ces services de diagnostic incluent les macros et les fonctions globales qui vous permettent de tracer les allocations de mémoire de votre programme, fait un dump du contenu d'objets au moment de l'exécution, et imprime les messages de débogage au moment de l'exécution.Les macros et les fonctions globales pour les services de diagnostic sont regroupées dans les catégories suivantes :
Macros de diagnostic générales
Fonctions et variables générales de diagnostic
Fonctions de diagnostic d'objet
Ces macros et fonctions sont disponibles pour toutes les classes dérivées d' CObject dans les versions debug et Release MFC.Toutefois, tous sauf si DEBUG_NEW et VÉRIFIER ne faites rien dans la version Release.
Dans la bibliothèque de débogage, tous les blocs de mémoire alloués sont encadrés avec une série de « octets de protection. » Si ces octets sont troublés par une écriture itinérant de mémoire, les programmes de diagnostic peuvent signaler un problème.Si vous incluez la ligne :
#define new DEBUG_NEW
dans votre fichier d'implémentation, tous les appels à new non réussies enregistrent le nom de fichier et le numéro de ligne où l'allocation de mémoire a eu lieu.La fonction CMemoryState::DumpAllObjectsSince affiche cette information supplémentaire, qui vous permet d'identifier des fuites de mémoire.Consultez également à la classe CDumpContext pour plus d'informations sur la sortie de diagnostic.
De plus, la bibliothèque Runtime C prend également en charge un ensemble de fonctions de diagnostic que vous pouvez utiliser pour déboguer vos applications.Pour plus d'informations, consultez routines de débogage dans la référence de la bibliothèque Runtime.
Macros de diagnostic générales MFC
Imprime un message puis interrompt le programme si l'expression spécifiée prend la FALSE dans la version debug de la bibliothèque. |
|
Tests qu'un objet est un objet de la classe spécifiée ou d'une classe dérivée de la classe spécifiée. |
|
Teste la validité interne d'un objet en appelant sa fonction membre d' AssertValid ; en général substitué d' CObject. |
|
Indiquez un nom de fichier et un numéro de ligne pour toutes les allocations d'objets en mode débogage pour vous aider à rechercher les fuites de mémoire. |
|
Semblable à ASSERT mais ne teste pas la valeur de l'expression ; utile pour le code qui doit s'exécuter uniquement en mode débogage. |
|
Fournit printffonction comme dans la version debug de la bibliothèque. |
|
Semblable à ASSERT mais évalue l'expression dans la version Release de la bibliothèque ainsi que dans la version debug. |
Variables et fonctions de diagnostic générales MFC
Variable globale qui envoie les informations de CDumpContext dans la fenêtre Sortie du débogueur ou au terminal de débogage. |
|
Variable globale qui contrôle le comportement de l'allocateur de mémoire de débogage. |
|
La variable globale utilisée pour tester SCODE passé pour voir s'il s'agit d'une erreur et, le cas échéant, lève l'erreur appropriée. |
|
Active l'état de la mémoire tout actuellement allouée. |
|
Si appelé pendant que dans le débogueur, dumps l'état d'un objet pendant le débogage. |
|
Générez une image de la pile actuelle.Cette fonction est toujours liée statiquement. |
|
Active le dump des fuites de mémoire. |
|
Active ou désactive la mémoire suivant et désactivation. |
|
Vérifie qu'un bloc de mémoire a été correctement allouée. |
|
Vérifie qu'une plage d'adresses mémoire se trouve dans les limites du programme. |
|
Détermine si un pointeur vers une chaîne est valide. |
|
Active l'appel d'une fonction sur chaque allocation de mémoire. |
Fonctions de diagnostic des objets MFC
Remplit une fonction spécifiée sur tous les CObject- les classes dérivées qui prennent en charge le contrôle de type d'exécution. |
|
Remplit une fonction spécifiée sur tous les CObject- les objets dérivés qui ont été alloués avec new. |