_CrtDumpMemoryLeaks

Legt alle Speicherblöcke im Debugheap ab, wenn ein Speicherverlust aufgetreten ist (nur Debugversion).

Syntax


int _CrtDumpMemoryLeaks( void );

Rückgabewert

_CrtDumpMemoryLeaks gibt zurück TRUE , wenn ein Speicherverlust gefunden wird. Andernfalls wird von der Funktion FALSE zurückgegeben.

Hinweise

Die _CrtDumpMemoryLeaks-Funktion bestimmt, ob seit dem Beginn der Programmausführung ein Speicherverlust aufgetreten ist. Wenn ein Verlust erkannt wird, werden die Debugheaderinformationen für alle Objekte im Heap in einer für den Benutzer lesbaren Form ausgegeben. Wenn _DEBUG sie nicht definiert ist, werden die Aufrufe _CrtDumpMemoryLeaks während der Vorverarbeitung entfernt.

_CrtDumpMemoryLeaks wird häufig am Ende der Programmausführung aufgerufen, um zu überprüfen, ob sämtlicher Speicher, der von der Anwendung belegt wird, freigegeben wurde. Die Funktion kann beim Beenden des Programms automatisch aufgerufen werden, indem sie das _CRTDBG_LEAK_CHECK_DF Bitfeld der Kennzeichnung mithilfe der _CrtSetDbgFlag_crtDbgFlag Funktion einschalten.

_CrtDumpMemoryLeaks Aufrufe _CrtMemCheckpoint zum Abrufen des aktuellen Zustands des Heaps und scannen dann den Zustand nach Blöcken, die nicht freigegeben wurden. Wenn ein nicht erneuter Block gefunden wird, werden Aufrufe _CrtMemDumpAllObjectsSince zum Abbilden von Informationen für alle Objekte, die dem Heap zugeordnet sind, _CrtDumpMemoryLeaks vom Anfang der Programmausführung aus abgerufen.

Standardmäßig sind interne C-Laufzeitblöcke (_CRT_BLOCK) nicht in Speicherabbildvorgängen enthalten. Die _CrtSetDbgFlag Funktion kann zum Aktivieren des _CRTDBG_CHECK_CRT_DF Bits _crtDbgFlag verwendet werden, um diese Blöcke in den Leckerkennungsprozess einzuschließen.

Weitere Informationen zu Heap-Zustandsfunktionen und der _CrtMemState Struktur finden Sie unter Heap-Statusberichtsfunktionen. Weitere Informationen dazu, wie Speicherblöcke in der Debugversion des Basis heap zugeordnet, initialisiert und verwaltet werden, finden Sie unter CRT Debug Heap Details.

Anforderungen

Routine Erforderlicher Header
_CrtDumpMemoryLeaks <crtdbg.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Bibliotheken

Nur Debugversionen von C-Laufzeitbibliotheken

Beispiel

Ein Beispiel für die Verwendung _CrtDumpMemoryLeaksfinden Sie unter crt_dbg1.

Siehe auch

Debugroutinen