Visual Leak Detector을 이용한 메모리 누수 탐지법
C++을 하다보면 어쩔수 없이 생기는 것이 메모리누수입니다.
물론 최근에는 스마트포인터같은게 있다고 하지만 아직도 어쩔수없이 동적할당을 스마트포인터를 통해서 할당을 하지않습니다.
그러다보니 메모리누수는 당연시 여깁니다. 이를 방지하기 위해 C++ msdn에서도 메모리누수를 확인하는법에 관해 적혀있습니다.
![](https://www.kudryavka.me/content/images/wordpress/2019/02/msdn메모리누수.jpg)
하지만 이와 별개로 좀더 자세히 알고싶을때가 있습니다. 그래서 여러 메모리누수탐지 라이브러리가 있는데 대표적으로 Visual Leak Detector입니다.
![](https://www.kudryavka.me/content/images/wordpress/2019/02/kinddragon.jpg)
해당 라이브러리는 사용법은 vld라는 헤더파일만 입력만 해주면됩니다.
그리고 디버그모드로 컴파일을 하게되면 프로그램이 끝날때 어디부분이 메모리할당이 일어났고 어떤 데이터가 있는지 쉽게확인할수 있습니다.
#include <vld.h>
#include <iostream>
int main()
{
char * str= new char[100];
std::memcpy(str, "test", 10);
}
간단한 예제로 다음과 같은 소스를 실행해보았습니다.
![](https://www.kudryavka.me/content/images/wordpress/2019/02/vld-메모리누수.jpg)
얼마나 할당했는지 어떤 데이터가 누수가 발견했는지 프로그램이 끝날때 발견할수 있습니다.