共用方式為


_CrtDoForAllClientObjects

針對堆積中的所有 _CLIENT_BLOCK 類型呼叫應用程式提供的函式 (僅限偵錯版本)。

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

參數

  • pfn
    應用程式提供的函式回呼函式的指標。 此函式的第一個參數指向資料。 第二個參數是傳遞至 _CrtDoForAllClientObjects 呼叫的內容指標。

  • context
    要傳遞至應用程式提供之函式的應用程式提供的內容的指標。

備註

_CrtDoForAllClientObjects 函式會在堆積的連結清單中搜尋具有 _CLIENT_BLOCK 類型的記憶體區塊,並在找到此類型的區塊時,呼叫應用程式提供的函式。 找到的區塊和 context 參數會作為引數傳遞至應用程式提供的函式。 應用程式可以在偵錯期間追蹤特定配置群組,方法是透過明確呼叫偵錯堆積函式以配置記憶體,並為區塊指定分派 _CLIENT_BLOCK 區塊類型。 然後就可以分別追蹤這些區塊,並在遺漏偵測期間和記憶體狀態報告期間個別回報這些區塊。

_crtDbgFlag 旗標的 _CRTDBG_ALLOC_MEM_DF 位元欄位沒有開啟,會立即傳回 _CrtDoForAllClientObjects。 未定義 _DEBUG 時,會在前置處理期間移除 _CrtDoForAllClientObjects 的呼叫。

如需 _CLIENT_BLOCK 類型以及如何由其他偵錯函式使用該類型的詳細資訊,請參閱偵錯堆積上的區塊類型。 如需在偵錯版本的基底堆積中如何配置、初始化及管理記憶體區塊的資訊,請參閱 CRT 偵錯堆積詳細資料

若 pfn 為 NULL,則會叫用無效參數處理常式,如參數驗證中所述。 若允許繼續執行,errno、_doserrno、_sys_errlist 和 _sys_nerr 會設為 EINVAL,並傳回函式。

需求

常式

必要的標頭

_CrtDoForAllClientObjects

<crtdbg.h>、<errno.h>

如需相容性的詳細資訊,請參閱簡介中的相容性

**程式庫:**僅限偵錯版本的 CRT 程式庫功能

範例

請參閱 dfacobjs

.NET Framework 對等用法

不適用。若要呼叫標準 C 函式,請使用 PInvoke。如需詳細資訊,請參閱平台叫用範例

請參閱

參考

偵錯常式

_CrtSetDbgFlag

_CrtReportBlockType

其他資源

堆積狀態報告函式