_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
.