메모리 릭 체크

비쥬얼 C++에서는 메모리가 해제 되지 않고 남아 있는지 체크하는 API가 제공 된다.

new나 malloc 후 해제하지 않고 종료 하면 비쥬얼 스튜디오의 Output 창으로 메시지를 출력한다.
출력창에서 메시지를 클릭하면 해당 소스로 이동한다.

사용법은 다음과 같다.

//main.cpp

#include <stdio.h>

#include "DbgCheck.h"

 

class MemoryTest

{

public:

    MemoryTest()

    {

        int* in = (int*)malloc( 10 * sizeof(int) );

    }

};

 

void main()

{

    StartDebug();

    char* p1 = new char;

 

    MemoryTest test;

}

1. 메모제 릭 검사 API를 모아놓은 DbgCheck.h 파일을 포함 한다.

2. 프로그램 실행시 StartDebug() 실행 시킨다.

이때, DbgCheck.h 파일은 헤더 파일은 struct나 class, 객체선언의 위에 선언한다.
다른 헤더파일의 끝에 선언 하도록 한다.
윈도우즈 API이기 때문에 별다른 설명은 하지 않는다.

아래는 위의 명령을 실행 했을 때 해제도지 않은 메모리를 비쥬얼 스튜디오 출력창으로 보여주고 있다.

Detected memory leaks!
Dumping objects ->
d:\work\memorytest\main.cpp(10) : {57} normal block at 0x003E3550, 40 bytes long.
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
d:\work\memorytest\main.cpp(17) : {56} client block at 0x003E3510, subtype 0, 1 bytes long.
 Data: < > CD
Object dump complete.

DbgCheck.h   

프로젝트 파일(memoryTest.zip)