Posted on 2013-06-14 14:03
點(diǎn)點(diǎn)滴滴 閱讀(2767)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
02 編程語(yǔ)言
Visual Leak Detector是一款免費(fèi)的、健全的、開(kāi)源的Visual C++內(nèi)存泄露檢測(cè)系統(tǒng)。相比Visual C++自帶的內(nèi)存檢測(cè)機(jī)制,Visual Leak Detector可以顯示導(dǎo)致內(nèi)存泄露的完整內(nèi)存分配調(diào)用堆棧。
下載Visual Leak Detector,當(dāng)前版本2.2.3,在Visual C++ IDE的"工具"→"選項(xiàng)"→"項(xiàng)目和解決方案"→"VC++ 目錄","包含文件"增加VLD的"\include"路徑,"庫(kù)文件"增加VLD的"\lib\Win32"路徑,另外動(dòng)態(tài)庫(kù)"\bin\Win32"路徑在安裝時(shí)已經(jīng)添加到環(huán)境變量里面了,若是未添加,則需要手動(dòng)拷貝"\bin\Win32"下的文件到工程Debug目錄。下面記錄下使用方法:
1.新建一個(gè)Win32控制臺(tái)項(xiàng)目;
2.添加代碼如下所示:
1 2 3 4 5 6 7 8
| | #include "stdafx.h" #include "vld.h" int _tmain(int argc, _TCHAR* argv[]) { char *pBuf = new char[200]; return 0; } |
3.在
Debug模式下的“
輸出”窗口,將有如下信息:

報(bào)告列出了內(nèi)存泄露是在第幾塊,所在的地址,泄露的字節(jié),調(diào)用的堆棧,內(nèi)存內(nèi)容。雙擊調(diào)用堆棧可以跳轉(zhuǎn)到所在行。
4.在Release模式下,不會(huì)鏈接Visual Leak Detector。
5.Visual Leak Detector有一些配置項(xiàng),可以設(shè)置內(nèi)存泄露報(bào)告的保存地(文件、調(diào)試器),拷貝"\Visual Leak Detector"路徑下的vld.ini文件到工程的Debug目錄下(在IDE運(yùn)行的話,則需要拷貝到工程目錄下),修改以下項(xiàng):
ReportFile = .\memory_leak_report.txt
ReportTo = both
直接雙擊Debug目錄下exe,結(jié)果如下圖所示:

文件內(nèi)容跟“輸出”窗口的內(nèi)容一樣。