Diagnosedienste
Die Microsoft Foundation Class-Bibliothek stellt viele Diagnosedienste, die das Debuggen, die Programme einfacher. Diese Diagnosedienste enthalten Makros und globale Funktionen, die Ihnen ermöglichen, die Speicherbelegungen des Programms zu verfolgen, der Inhalt von Objekten während der Laufzeit gespeichert und Debugmeldungen zur Laufzeit gedruckt. Die Makros und globalen Funktionen für Diagnosedienste werden in die folgenden Kategorien gruppiert:
Allgemeine Diagnosemakros
Allgemeine Diagnosefunktionen und Variablen
Objektdiagnosenfunktionen
Diese Makros und Funktionen sind für alle Klassen verfügbar, die von CObject in der Debug- und Releaseversionen von MFC ableiten. jedoch alle, außer DEBUG_NEW und ÜBERPRÜFEN nichts in der Releaseversion erfolgen.
In der Debugbibliothek aufweist werden alle reservierten Speicherblöcke gekennzeichnet mit einer Reihe Wächterbytes "." Wenn dieser Bytes durch einen fehlerhaften Arbeitsspeicher gestört werden, schreiben, können die Diagnoseprogramme über ein Problem melden. Wenn Sie die Zeile einfügen:
#define new DEBUG_NEW
in der Implementierungsdatei speichern alle Aufrufe von neu den Dateinamen und die Zeilennummer, in der die Speicherbelegung stattgefunden hat. Die Funktion CMemoryState::DumpAllObjectsSince werden diese zusätzlichen Informationen an und ermöglicht Ihnen, um Speicherverluste zu identifizieren. Verweisen Sie auch zur Klasse CDumpContext für weitere Diagnoseausgabe.
Darüber hinaus unterstützt die C-Laufzeitbibliothek auch einen Satz Diagnosefunktionen, die Sie verwenden können, um Anwendungen zu debuggen. Weitere Informationen finden Sie unter Debuggen Sie Routinen in der Laufzeitbibliotheksreferenz.
MFC-allgemeine Diagnosemakros
Druckt eine Meldung und wird anschließend das Programm ab, wenn der angegebene Ausdruck FALSE in der Debugversion der Bibliothek ergibt. |
|
Tests, dass ein Objekt ein Objekt der angegebenen Klasse oder einer Klasse ist, die von der angegebenen Klasse abgeleitet wird. |
|
Testet die interne Gültigkeit eines Objekts durch Aufrufen seiner AssertValid ; Memberfunktion normalerweise überschrieben von CObject. |
|
Stellt einen Dateinamen und Zeilennummer eine für alle Objektzuordnungen im Debugmodus, um zu helfen, Speicherverluste zu suchen. |
|
Vergleichbar mit ASSERT jedoch getestet nicht den Wert des Ausdrucks; nützlich für Code, der nur im Debugmodus ausführen soll. |
|
Stellt ähnliche Funktion printf in der Debugversion der Bibliothek bereit. |
|
Vergleichbar mit ASSERT jedoch wertet den Ausdruck in der Releaseversion der Bibliothek sowie in der Debugversion aus. |
MFC-allgemeine Diagnosevariablen und -Funktionen
Globale Variablen, die CDumpContext Informationen zum Debuggerausgabefenster oder dem debuggensterminal sendet. |
|
Globale Variablen, die das Verhalten der Debuggingsspeicherbelegungsfunktion steuert. |
|
Globale Variablen verwendet, um übergebene SCODE zu testen, um festzustellen, ob ein Fehler ist und wenn ja, den entsprechenden Fehler auslöst. |
|
Überprüft die Integrität von allen belegte Speicher nur. |
|
Wenn Sie aufgerufen werden während im Debugger, Dumps der Zustand eines Objekts beim Debuggen. |
|
Generieren Sie ein Bild des aktuellen Stapel. Diese Funktion wird immer statisch verknüpft. |
|
Ermöglicht den würde. |
|
Drehungsarbeitsspeichernachverfolgung an und deaktivieren. |
|
Überprüft, dass ein Speicherblock ordnungsgemäß zugeordnet wurde. |
|
Überprüft, ob ein Speicheradressenbereich innerhalb des Programms. |
|
Bestimmt, ob ein Zeiger auf eine Zeichenfolge gültig ist. |
|
Aktiviert das Aufrufen einer Funktion auf jeder Speicherbelegung. |
MFC-Objekt-Diagnosen-Funktionen
Entlädt eine angegebene Aufgabe für alle von CObject abgeleiteten Klassen erfüllt, die Ablauftypüberprüfung unterstützen. |
|
Entlädt eine angegebene Aufgabe für alle CObject abgeleitete Objekte aus, die mit neu zugeordnet wurden. |