다음을 통해 공유


_CrtDumpMemoryLeaks

메모리 누수가 발생한 경우 디버그 힙의 모든 메모리 블록을 덤프합니다(디버그 버전에만 해당).

구문


int _CrtDumpMemoryLeaks( void );

반환 값

_CrtDumpMemoryLeaks 는 메모리 누수가 발견되면 반환 TRUE 됩니다. 그렇지 않으면 FALSE를 반환합니다.

설명

_CrtDumpMemoryLeaks 함수는 프로그램이 실행된 이후 메모리 누수가 발생했는지 확인합니다. 누수를 발견하면 힙에 있는 모든 개체에 대한 디버그 헤더 정보를 사용자가 읽을 수 있는 형식으로 덤프합니다. _DEBUG가 정의되지 않은 경우 전처리 중에 _CrtDumpMemoryLeaks에 대한 호출이 제거됩니다.

애플리케이션에서 할당한 메모리가 모두 해제되었는지 확인하기 위해 프로그램 실행의 끝에서 _CrtDumpMemoryLeaks가 자주 호출됩니다. 함수를 사용하여 플래그의 비트 필드를 켜 _CRTDBG_LEAK_CHECK_DF 서 프로그램 종료 시 함수를 _crtDbgFlag 자동으로 호출할 _CrtSetDbgFlag 수 있습니다.

_CrtDumpMemoryLeaks 호출 _CrtMemCheckpoint 하여 힙의 현재 상태를 가져온 다음 해제되지 않은 블록의 상태를 검색합니다. 미해제 블록이 발견되면 _CrtDumpMemoryLeaks 프로그램 실행 시작부터 힙에 할당된 모든 개체에 대한 정보를 덤프하도록 호출 _CrtMemDumpAllObjectsSince 합니다.

기본적으로 내부 C 런타임 블록(_CRT_BLOCK)은 메모리 덤프 작업에 포함되지 않습니다. 이 함수를 _CrtSetDbgFlag 사용하여 이러한 블록을 누수 감지 프로세스에 포함할 비트를 _crtDbgFlag_CRTDBG_CHECK_CRT_DF 수 있습니다.

힙 상태 함수 및 _CrtMemState 구조체에 대한 자세한 내용은 Heap State Reporting Functions를 참조하세요. 기본 힙의 디버그 버전에서 메모리 블록을 할당, 초기화 및 관리하는 방법에 대한 자세한 내용은 CRT 디버그 힙 세부 정보를 참조하세요.

요구 사항

루틴에서 반환된 값 필수 헤더
_CrtDumpMemoryLeaks <crtdbg.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

라이브러리

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

예시

사용 _CrtDumpMemoryLeaks방법에 대한 샘플은 다음을 참조하세요 crt_dbg1.

참고 항목

디버그 루틴