_CrtDoForAllClientObjects

 

게시 날짜: 2016년 11월

Visual Studio 2017 에 대한 최신 설명서는 Visual Studio 2017 설명서를 참조하세요.

힙의 모든 _CLIENT_BLOCK 형식에 대해 응용 프로그램에서 제공하는 함수를 호출합니다(디버그 버전에만 해당).

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

매개 변수

pfn
응용 프로그램에서 제공하는 함수 콜백 함수에 대한 포인터입니다. 이 함수에 대한 첫 번째 매개 변수는 데이터를 가리킵니다. 두 번째 매개 변수는 _CrtDoForAllClientObjects에 대한 호출로 전달되는 컨텍스트 포인터입니다.

context
응용 프로그램에서 제공하는 함수에 전달되는 응용 프로그램에서 제공하는 컨텍스트에 대한 포인터입니다.

_CrtDoForAllClientObjects 함수는 형식이 _CLIENT_BLOCK 인 메모리 블록의 힙 연결 목록을 검색하고 이 형식의 블록을 찾으면 응용 프로그램에서 제공한 함수를 호출합니다. 찾은 블록과 context 매개 변수는 응용 프로그램에서 제공하는 함수에 인수로 전달됩니다. 디버깅 중 응용 프로그램은 디버그 힙 함수를 호출하여 메모리를 할당하고 해당 블록에 _CLIENT_BLOCK 블록 유형을 할당하도록 지정하여 특정 할당 그룹을 명시적으로 추적할 수 있습니다. 그런 다음 이러한 블록을 개별적으로 추적하여 누수 검색 및 메모리 상태 보고 시 다르게 보고할 수 있습니다.

_CRTDBG_ALLOC_MEM_DF 플래그의 _CRTDBG_ALLOC_MEM_DF 비트 필드를 켜지 않은 경우 _CrtDoForAllClientObjects 가 즉시 반환됩니다. _DEBUG 가 정의되지 않은 경우 전처리 중 _CrtDoForAllClientObjects 호출이 제거됩니다.

_CLIENT_BLOCK 형식과 다른 디버그 함수에서 이 형식을 사용하는 방법에 대한 자세한 내용은 Types of blocks on the debug heap에 대한 호출로 전달되는 컨텍스트 포인터입니다. 기본 힙의 디버그 버전에서 메모리 블록을 할당, 초기화 및 관리하는 방법에 대한 자세한 내용은 CRT Debug Heap Details를 참조하세요.

경우 pfnNULL에 설명 된 대로 잘못 된 매개 변수 처리기가 호출 매개 변수 유효성 검사합니다. 실행을 계속 하도록 허용 된 경우 errno, _doserrno, _sys_errlist 및 _sys_nerr 로 설정 된 EINVAL 함수를 반환 합니다.

루틴필수 헤더
_CrtDoForAllClientObjects<crtdbg.h>, <errno.h>

호환성에 대한 자세한 내용은 소개 단원의 Compatibility 을 참조하세요.

라이브러리: 디버그 버전의 유니버설 C 런타임 라이브러리만 해당합니다.

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

디버그 루틴
_CrtSetDbgFlag
힙 상태 보고 함수
_CrtReportBlockType

표시: