있음을

C 런타임 디버그 메모리 할당 프로세스 (디버그 버전에만 해당)에 연결 하 여 클라이언트 정의 할당 함수를 설치 합니다.

_CRT_ALLOC_HOOK _CrtSetAllocHook(
   _CRT_ALLOC_HOOK allocHook 
);

매개 변수

  • allocHook
    C 런타임 디버그 메모리 할당 프로세스에 연결 하는 새 클라이언트 정의 할당 함수

반환 값

이전에 정의 된 할당 후크 함수를 반환 하거나 NULL 경우 allocHook 입니다 NULL.

설명

_CrtSetAllocHook자신의 할당 함수 C 런타임 디버그 라이브러리 메모리 할당 프로세스에 연결할 수 있습니다.따라서 할당 하려면 디버그 할당 함수를 호출할 때마다 다시 할당, 또는 메모리 블록 트리거를 호출 하는 응용 프로그램의 후크 함수 약속._CrtSetAllocHook응용 프로그램이 응용 프로그램 메모리 부족 상황을 처리 하는 방법을 테스트을 쉽게 방법을 나중에 분석 하기 위해 할당 정보를 기록 하는 기회와 할당 패턴을 검사 하는 기능을 제공 합니다.때 _DEBUG 정의 되지 않은, 호출 하려면 _CrtSetAllocHook 전처리 하는 동안 제거 됩니다.

_CrtSetAllocHook 함수에 지정 된 새 클라이언트 정의 할당 함수를 설치 allocHook 와 이전에 정의 된 후크 함수를 반환 합니다.다음은 클라이언트 정의 할당 후크 프로토타입화 되어야 합니다 방법을 보여 줍니다.

int YourAllocHook( int allocType, void *userData, size_t size, int 
blockType, long requestNumber, const unsigned char *filename, int 
lineNumber);

allocType 인수는 할당 된 작업의 종류를 지정 (_HOOK_ALLOC, _HOOK_REALLOC, 및 _HOOK_FREE) 호출 하는 할당 후크 함수를 발생 합니다.트리거 유형 할당 되 면 _HOOK_FREE, userData 에 대 한 메모리 블록의 사용자 데이터 섹션에 대 한 포인터입니다.그러나 트리거 유형을 할당 되 면 _HOOK_ALLOC 또는 _HOOK_REALLOC, userData 입니다 NULL 메모리 블록 할당 되지 않은 때문에.

size메모리의 크기 (바이트)를 차단 지정 blockType 메모리 블록의 형식을 나타냅니다 requestNumber 개체 할당 순서의 메모리 블록 수 및 사용 가능한 경우 filename 및 lineNumber 트리거 작업 할당 된 시작 된 소스 파일 이름과 줄 번호를 지정 합니다.

후크 함수는 처리가 완료 된 후 주 C 런타임 할당 프로세스를 계속 하는 방법을 설명 하는 부울 값을 반환 해야 합니다.후크 함수 주 할당 프로세스를 후크 함수를 호출할 것을 다음 후크 함수에서 반환 해야 하는 경우와 계속 하기 원할 때 TRUE.이렇게 원래 트리거 할당 작업을 실행 하면 됩니다.후크 함수는이 구현을 사용 하 여, 수집 하 고 현재 할당 작업 또는 디버그 힙 상태를 방해 하지 않고 나중에 분석 하기 위해 할당 정보를 저장할 수 있습니다.

후크 함수도 트리거 할당 작업 호출 된 및 실패 한 다음 후크 함수에서 반환 해야 하는 기본 할당 프로세스를 원할 때 FALSE.이 구현을 사용 하 여, 다양 한 메모리 조건 시뮬레이션 하 고 힙 상태 응용 프로그램 각각의 상황을 처리 하는 방법을 테스트 하려면 디버그 후크 함수 있습니다.

후크 함수를 취소 하려면 전달 NULL 에 _CrtSetAllocHook.

방법에 대 한 자세한 내용은 _CrtSetAllocHook 기타 메모리 관리 기능 또는 참조 클라이언트 정의 후크 함수를 직접 작성 하는 방법으로 사용할 수 있습니다 쓰기를 직접 디버깅 후크 함수.

[!참고]

_CrtSetAllocHook아래에서 지원 되지 않는 /clr:pure.

요구 사항

루틴

필수 헤더

_CrtSetAllocHook

<crtdbg.h>

더 많은 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

라이브러리

디버그 버전의 C 런타임 라이브러리 만 합니다.

예제

샘플을 사용 하는 방법에 대 한 _CrtSetAllocHook를 참조 하십시오 crt_dbg2.

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.

참고 항목

참조

루틴을 디버깅 합니다.

_CrtGetAllocHook