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其實(shí)是基于vc自帶的檢測(cè)工具工作的,雖然知道原理的情況下我們自己也可以做出一個(gè)功能類似的東西來(lái)。但是又何必再造車輪呢?vld本身是開(kāi)源項(xiàng)目,想要知道其實(shí)現(xiàn)的童鞋可以看看它的代碼哦。大致上似乎是基于VC++DEBUGER和CRT庫(kù)提供的檢測(cè)和定位內(nèi)存泄漏的工具,不過(guò)作為一個(gè)有歷史的開(kāi)源項(xiàng)目,其功能自然沒(méi)有簡(jiǎn)單到這種程度。
vld簡(jiǎn)單易用,文檔也很豐富,對(duì)于內(nèi)存泄露的具體位置也能以調(diào)用堆棧的形式詳細(xì)的顯示出來(lái)。在代碼上的變動(dòng)只需要簡(jiǎn)單的加上#include 就可以了。集成起來(lái)也很方便,與其他的第三方庫(kù)沒(méi)有區(qū)別,而且它本身只工作在debug模式,release的時(shí)候根本就不會(huì)編譯,相當(dāng)之便利。不知道如何配置的童鞋可以參考下面的來(lái)做,注意更改成自己的vld安裝路徑就好:
下載Visual Leak Detector,當(dāng)前版本2.4,在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目錄。下