_CrtDumpMemoryLeaks

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

int _CrtDumpMemoryLeaks( void );

반환 값

_CrtDumpMemoryLeaks는 메모리 누수를 찾으면 TRUE를 반환합니다. 그렇지 않은 경우 FALSE를 반환합니다.

설명

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

_CrtDumpMemoryLeaks는 해제 된 응용 프로그램에서 할당된 모든 메모리를 확인하기 위해 프로그램 실행의 끝에 자주 호출됩니다. _CrtSetDbgFlag 함수를 사용하는 _crtDbgFlag 플래그의 _CRTDBG_LEAK_CHECK_DF 비트 필드를 바꿈으로써 이 함수는 프로그램 종료시 자동으로 호출될 수 있습니다.

_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을 참조하십시오.

해당 .NET Framework 항목

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

참고 항목

참조

디버그 루틴