Freigeben über


_CrtDoForAllClientObjects

Ruft eine von der Anwendung bereitgestellte Funktion für alle _CLIENT_BLOCK-Typen im Heap auf (nur Debugversion).

void _CrtDoForAllClientObjects(     void ( * pfn )( void *, void * ),    void *context );

Parameter

  • pfn
    Zeiger zu der von der Anwendung bereitgestellten Rückruffunktion. Der erste Parameter für diese Funktion zeigt auf die Daten. Der zweite Parameter ist der Kontextzeiger, der an den Aufruf von _CrtDoForAllClientObjects übergeben wird.

  • context
    Zeiger zu dem von der Anwendung bereitgestellten Kontext, um die von der Anwendung bereitgestellten Funktion zu übergeben.

Hinweise

Die _CrtDoForAllClientObjects-Funktion sucht die verknüpfte Liste des Heaps für Speicherblöcke im _CLIENT_BLOCK-Typ und ruft die von der Anwendung bereitgestellte Funktion auf, wenn ein Block dieses Typs gefunden wird. Der gefundene Block und der context-Parameter werden als Argumente an die von der Anwendung bereitgestellte Funktion übergeben. Während des Debuggens kann eine Anwendung eine bestimmte Zuordnungsgruppe nachverfolgen, indem sie die Debugheapfunktionen explizit zum Belegen des Speichers aufruft und angibt, dass den Blöcken der _CLIENT_BLOCK-Blocktyp zugewiesen wird. Diese Blöcke können dann einzeln nachverfolgt und während der Erkennung von Speicherverlusten und der Berichterstellung von Speicherzuständen unterschiedlich übermittelt werden.

Wenn das _CRTDBG_ALLOC_MEM_DF-Bitfeld des _crtDbgFlag-Flags nicht aktiviert ist, wird unmittelbar _CrtDoForAllClientObjects zurückgegeben. Wenn _DEBUG nicht definiert ist, werden Aufrufe von _CrtDoForAllClientObjects während der Vorverarbeitung entfernt.

Weitere Informationen zum _CLIENT_BLOCK-Typ und zu seiner Verwendung durch andere Debugfunktionen finden Sie unter Blocktypen auf dem Debugheap. Informationen darüber, wie Speicherblöcke in der Debugversion des Basisheaps zugeordnet, initialisiert und verwaltet werden, finden Sie unter Details zum CRT-Debugheap.

Wenn pfn den Wert NULL annimmt, wird der ungültige Parameterhandler, wie in Parametervalidierung beschrieben, aufgerufen. Wenn die weitere Ausführung zugelassen wird, wird errno, _doserrno, _sys_errlist und _sys_nerr auf EINVAL gesetzt, und die Funktion wird zurückgegeben.

Anforderungen

Routine

Erforderlicher Header

_CrtDoForAllClientObjects

<crtdbg.h>, <errno.h>

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

Bibliotheken: nur Debugversionen von CRT-Bibliotheksfunktionen.

Beispiel

Siehe dfacobjs.

.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

_CrtSetDbgFlag

_CrtReportBlockType

Weitere Ressourcen

Berichtsfunktionen für den Heapzustand