메모리 할당 추적
이 항목은 다음 언어에 적용됩니다.
Edition |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
네이티브 전용 |
||||
Pro, Premium 및 Ultimate |
네이티브 전용 |
MFC에서 new 연산자 자리에 DEBUG_NEW 매크로를 사용하면 메모리 누수를 찾는 데 도움이 됩니다. 프로그램의 디버그 버전에서 DEBUG_NEW는 할당된 각 개체의 파일 이름과 줄 번호를 추적합니다. 프로그램의 릴리스 버전을 컴파일할 경우 DEBUG_NEW는 파일 이름과 줄 번호 정보 없이 간단한 new 연산자를 확인합니다. 따라서 프로그램의 릴리스 버전에서는 속도가 저하되지 않습니다.
new 자리에 DEBUG_NEW를 사용하기 위해 프로그램 전체를 다시 작성하는 대신, 다음과 같이 소스 파일에서 이 매크로를 정의할 수 있습니다.
#define new DEBUG_NEW
개체 덤프를 수행하면 DEBUG_NEW에서 할당된 개체가 할당된 파일과 줄 번호를 표시하여, 메모리 누수가 발생한 소스를 알 수 있습니다.
MFC 프레임워크의 디버그 버전은 자동으로 DEBUG_NEW를 사용하지만 코드는 그렇지 않습니다. DEBUG_NEW를 효과적으로 사용하려면, 위와 같이 DEBUG_NEW를 명시하거나 #define new를 사용해야 합니다.