Freigeben über


_CrtDumpMemoryLeaks

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

int _CrtDumpMemoryLeaks( void );

Rückgabewert

_CrtDumpMemoryLeaks gibt TRUE zurück, wenn ein Speicherverlust erkannt wird. Andernfalls gibt die Funktion FALSE zurück.

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 bei Programmbeendigung automatisch aufgerufen werden, indem das _CRTDBG_LEAK_CHECK_DF-Bitfeld des _crtDbgFlag-Flags mithilfe der _CrtSetDbgFlag-Funktion aktiviert wird.

_CrtDumpMemoryLeaks ruft _CrtMemCheckpoint auf, um den aktuellen Zustand des Heaps abzurufen, und durchsucht dann den Zustand für Speicherblöcke, die nicht freigegeben wurden. Wenn ein nicht freigegebener Block gefunden wird, ruft _CrtDumpMemoryLeaks die _CrtMemDumpAllObjectsSince-Funktion auf, um Informationen für alle Objekte auszugeben, die seit dem Beginn der Programmausführung im Heap zugeordnet wurden.

Standardmäßig sind interne C-Laufzeitblöcke (_CRT_BLOCK) nicht in Speicherabbildvorgängen enthalten. Mit der _CrtSetDbgFlag-Funktion kann das _CRTDBG_CHECK_CRT_DF-Bit von _crtDbgFlag aktiviert werden, um diese Blöcke bei der Erkennung von Speicherverlusten einzuschließen.

Weitere Informationen über Heapzustandsfunktionen und die _CrtMemState-Struktur finden Sie unter Berichtsfunktionen für den Heapzustand. Weitere Informationen darüber, wie Speicherblöcke in der Debugversion des Basisheaps zugeordnet, initialisiert und verwaltet werden, finden Sie unter Details zum CRT-Debugheap.

Anforderungen

Routine

Erforderlicher Header

_CrtDumpMemoryLeaks

<crtdbg.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Bibliotheken

Nur Debugversionen von C-Laufzeitbibliotheken.

Beispiel

Ein Beispiel für die Verwendung von _CrtDumpMemoryLeaks finden Sie unter crt_dbg1.

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Debugroutinen