[C++]使用Visual Leak Detector for Visual C++ 2008/2010輔助偵測程式中記憶體洩漏的問題

  • 23335
  • 0
  • C++
  • 2012-01-04

[C++]使用Visual Leak Detector for Visual C++ 2008/2010輔助偵測程式中記憶體洩漏的問題

Visual Leak Detector for Visual C++ 2008/2010是一免費的開放源碼工具,能輔助開發人員偵測C++程式中記憶體洩漏的問題,使用上也算十分簡單,至Visual Leak Detector for Visual C++ 2008/2010下載主程式後。

image

 

安裝後會在Program Files(x86)下找到安裝的程式,裡面比較重要的就是bin、lib跟include幾個目錄,bin目錄存放dll組件,lib存放靜態函式庫,include則是存放著標頭擋。

image

 

這邊以靜態函式庫為例,先開啟專案的屬性,在Additional Dependencies這邊設定lib檔的位置。

image

 

Additional Include Directories這邊設定include目錄位置。

image

 

都設定好後在程式中加入vld.h檔的引用,建置後執行程式,當關閉時偵測的結果就會顯現在輸出視窗中。


#include "vld.h"

 

這邊筆者示範個簡潔的範例,程式碼如下:


// Test_VisualLeakDetector.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "vld.h"

int _tmain(int argc, _TCHAR* argv[])
{
	char* buffer = new char[512];
	return 0;
}

 

運行後關閉,在輸出視窗就會顯現像下面這樣的偵測結果,不僅僅每個偵測到的Leak都會有當下的呼叫堆疊與記憶體資訊,也會列出簡單的統計資訊,像是總共發現的leak數、最大記憶體用量、與總共花費的記憶體。若要修正偵測到的Memory leak,可點擊感興趣的call stack,程式碼會自動跳至對應的位置。

image

 

Link