Diagnose-Services

Die Microsoft Foundation Class-Bibliothek liefert viele diagnostische Dienstleistungen, die Ihre Programme einfacher debuggen. Diese Diagnose-Services umfassen Makros und globale Funktionen, mit denen Sie Ihre Programmspeicher Netzbereiche, dump den Inhalt der Objekte während der Laufzeit, und Drucken Debug-Meldungen während der Laufzeit zu verfolgen. Die Makros und globale Funktionen für Diagnose-Services sind in die folgenden Kategorien gruppiert.:

Diese Makros und Funktionen sind für alle in den Debug- und Release-Versionen von MFC von CObject abgeleiteten Klassen verfügbar. Jedoch nichts außer DEBUG_NEW und überprüfen, ob alle in der Release-version.

In der Debug-Bibliothek sind alle reservierten Speicherblöcke mit einer Reihe von "Garde Bytes." eingeschlossen. Wenn diese Bytes durch eine fehlerhafte Speicher schreiben gestört sind, können die diagnostischen Routinen ein Problem melden. Wenn Sie die Zeile aufnehmen

# Definieren Sie neue DEBUG_NEW

in der Implementierungsdatei speichert alle Aufrufe an neue der Dateiname und die Zeilennummer, wo die Speicherzuordnung stattfand. Die Funktion CMemoryState::DumpAllObjectsSince zeigt diese zusätzlichen Informationen, so dass Sie Speicherverluste ermitteln. Verweisen Sie auch auf die Klasse CDumpContext für zusätzliche Informationen über Diagnoseausgang.

Darüber hinaus unterstützt die C Run-Time Bibliothek auch eine Reihe von Diagnosefunktionen, die Sie verwenden können, um Ihre Anwendungen zu debuggen. Weitere Informationen finden Sie unter Debug-Routinen in der Run-Time Library Reference.

Allgemeine Diagnose von MFC-Makros

GELTEND MACHEN Druckt eine Meldung und dann bricht das Programm, wenn der angegebene Ausdruck FALSE in der Debug-Version der Bibliothek ergibt.
ASSERT_KINDOF Tests, die ein Objekt ein Objekt der angegebenen Klasse oder einer Klasse ist, abgeleitet von der angegebenen Klasse.
ASSERT_VALID Testet die interne Validität eines Objekts durch die AssertValid -Memberfunktion aufrufen; in der Regel Überschreiben von CObject.
DEBUG_NEW Stellt eine Reihe Filename und Line für alle Objekt Zuweisungen im Debug-Modus, um Speicherverluste zu finden.
SPUR Bietet der Printf-Funktion in der Debug-Version der Bibliothek, wie.
TRACE0 Ähnlich wie TRACE aber nimmt ein Format-string ohne Argumente.
TRACE1 Ähnlich wie TRACE aber nimmt ein Format-string mit einem einzigen argument.
TRACE2 Ähnlich wie TRACE aber nimmt einen Format-string mit zwei Argumenten.
TRACE3 Ähnlich wie TRACE aber nimmt einen Format-string mit drei Argumenten.
ÜBERPRÜFEN Ähnlich wie ASSERT wertet aber den Ausdruck in der Release-Version der Bibliothek ebenso wie in der Debug-version.

MFC allgemeine Diagnose Variablen und Funktionen

afxDump Globale Variable, die CDumpContext Informationen Ausgabefenster des Debuggers oder das Debug-Terminal sendet.
afxMemDF Globale Variable, die das Verhalten der die Debug-Speicherreservierungsfunktion steuert.
afxTraceEnabled Globale Variable verwendet, um aktivieren oder deaktivieren die Ausgabe von TRACE -Makro.
afxTraceFlags Globale Variable verwendet, um die integrierten reporting-Funktionen von MFC einschalten.
AfxCheckError Globale Variable verwendet, um das übergebene testen SCODE zu sehen, wenn es sich um einen Fehler handelt und wenn ja, wird den entsprechenden Fehler.
AfxCheckMemory Überprüft die Integrität aller derzeit Arbeitsspeicher.
AfxDump Wenn während der Debugger aufgerufen, gibt den Zustand eines Objekts während des Debuggens.
AfxDumpStack Ein Bild des aktuellen Stapels zu generieren. Diese Funktion ist immer statisch gelinkt.
AfxEnableMemoryTracking Stellt Speicher Überwachung ein- und ausschalten.
AfxIsMemoryBlock Überprüft, ob ein Speicherblock richtig zugewiesen wurde.
AfxIsValidAddress Überprüft, ob ein Speicher-Adressbereich innerhalb des Programms ist.
Sich Bestimmt, ob ein Zeiger auf eine Zeichenfolge gültig ist.
AfxSetAllocHook Ermöglicht das Aufrufen einer Funktion auf jeder Speicherreservierung.

MFC-Objekt Diagnosefunktionen

AfxDoForAllClasses Führt eine angegebene Funktion für alle CObject-abgeleitete Klassen, die Typüberprüfung zur Laufzeit unterstützen.
AfxDoForAllObjects Führt eine angegebene Funktion für alle CObject-abgeleitete Objekte, die mit neuen zugeordnet wurden.

Index