메모리 누 출 검사 도구 VLD (Visual Leak Detector)


메모리 누 출 을 검사 하 는 데 많은 사람들 이 VLD 라 는 편리 한 도 구 를 사용 한 적 이 있 을 것 이다.
http://www.codeproject.com/KB/applications/visualleakdetector.aspx?fid=162023&df=90&mpp=25&sort=Position&noise=3&view=Quick&select=2597831
초기 vld 사용 이 불편 합 니 다. 얼마 전에 vs6 에서 vs 2008 로 공 사 를 옮 기 려 고 했 습 니 다. 그리고 메모리 누 출 과 관련 된 것 을 다시 검 사 했 습 니 다. 높 은 버 전 vs 에 서 는 별로 좋 지 않 은 것 같 습 니 다. codeprojcect 에 서 는 아직 업데이트 되 지 않 은 것 같 습 니 다.
그 러 자 구 글 이 내 려 와 보 니 여기 새 버 전이 생 겼 어 요. (새 집 으로 이 사 했 어 요?)
http://vld.codeplex.com/
사용 하기에 구 판 보다 제한 이 적 고 컴 파일 환경 에서 디 렉 터 리 를 설정 하면 더욱 편리 하고 사용 하기 쉽다.
 
=====================================================================
 
 
이전의 예 에서 사용 효 과 는 다음 과 같다.
 
#include <vld.h>

#define CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>

// =====================================================================================================================
// =======================================================================================================================

void Fun(void)
{
 //~~~~~~~~~~~~~
 int *p = new int;
 //~~~~~~~~~~~~~
}

// =====================================================================================================================
// =======================================================================================================================
int main()
{
 _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

 //~~~~~~~~~~~~~~~~~~~~
 int *pArr = new int[32];
 //~~~~~~~~~~~~~~~~~~~~

 Fun();
 return 0;
}


 
 
 
F5 프로그램 이 정상적으로 끝 난 후에 볼 수 있 습 니 다.
quote: --------------------------------------------------------------------------------
WARNING: Visual Leak Detector detected memory leaks! ---------- Block 47 at 0x003C5CD0: 4 bytes ---------- Call Stack: E:\prj\CSDN\VldDemo\VldDemo.cpp (13): Fun E:\prj\CSDN\VldDemo\VldDemo.cpp (28): main crt0.c (206): mainCRTStartup 0x7C816FD7 (File and line number not available): RegisterWaitForInputIdle Data: CD CD CD CD ........ ........
---------- Block 46 at 0x003C5C08: 128 bytes ---------- Call Stack: E:\prj\CSDN\VldDemo\VldDemo.cpp (24): main crt0.c (206): mainCRTStartup 0x7C816FD7 (File and line number not available): RegisterWaitForInputIdle Data: CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........
Visual Leak Detector detected 2 memory leaks. Visual Leak Detector is now exiting. Detected memory leaks! Dumping objects -> {47} normal block at 0x003C5CD0, 4 bytes long. Data: < > CD CD CD CD {46} normal block at 0x003C5C08, 128 bytes long. Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD Object dump complete. The thread 0x5E4 has exited with code 0 (0x0).
 
 
초기 에 설명문 을 찾 았 다.http://blog.csdn.net/dofty/article/details/1190606
STLport 를 사용 하면 메모리 탱크 가 메모리 유출 로 여 겨 집 니 다. defineSTLP_USE_MALLOC/_STLP_USE_NEWALLOC 는 검 측 을 더욱 정확하게 합 니 다.http://www.stlport.org/doc/README.VC++.html
 

좋은 웹페이지 즐겨찾기