Freigeben über


_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 nicht definiert ist, werden Aufrufe von _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 über Heapzustandsfunktionen und die _CrtMemState-Struktur finden Sie unter Heap State Reporting Functions. Weitere Informationen darüber, wie Speicherblöcke in der Debugversion des Basisheaps 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.

Libraries

Nur Debugversionen von C-Laufzeitbibliotheken

Beispiel

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

Siehe auch

Debugroutinen