개요

 링크드 리스트나, 동적할당, 비트맵 등등을 한번에 마구잡이로 사용하다보면 가끔 자원 해제를 깜빡하여 미아가 되어 메모리 안을 떠도는 경우가 있습니다. 이를 해결해주는 것 중 Visual Leak Detector for Visual C++(이하 VLD)라는 유용한 라이브러리가 있습니다. 단순하게 프로젝트에 라이브러리를 추가해 주고, 헤더를 인클루드하면 디버깅 모드에서 메모리누수가 날 때 Output창에 출력해주는 것을 토대로 소스를 고쳐나가면 됩니다.



설치방법


공식사이트(https://vld.codeplex.com/) 에서 Downloads메뉴에 들어간 후, 원하는 버전을 다운받습니다.

파일을 다 다운받았다면 적당히 설치해 줍니다.



설치가 끝나면, VS에서 원하는 프로젝트를 열고, Project메뉴를 열고 Properties를 엽니다.



메뉴를 열고, VC++ Directories를 클릭합니다.



Include Directories에 VLD의 include폴더를 추가합니다.



Library Directories에 VLD의 lib폴더에서, 자신의 컴퓨터에 맞는 폴더를 선택하여 추가합니다.



사용하기


소스의 #include 부분의 최하단에 vld.h를 인클루드합니다.



디버그를 하면 누수가 생길 때 마다 위와 같이 Output 창에 누수 위치와 상세 정보가 출력됩니다.



누수가 없으면 이렇게 출력됩니다.

이 엄청난 누수를 어떻게 해결할까 힘들었는데, 해결하고 아무 누수가 없다는 글을 보니 기분이 상쾌해지네요.:)



+.덧붙임


릴리즈 모드와 디버그 모드를 구분해 사용하려면, VLD를 인클루드해주는 부분을 이렇게 수정합니다.

+ Recent posts