2014-02-12 114 views
14

我有點新使用Visual Studio 2013,並試圖讓Visual Leak Detector(版本2.3)工作,以便我可以檢查我的項目的內存泄漏。視覺泄漏檢測器不報告泄漏

我有它安裝並增加 C:\ Program Files文件(x86)的\視覺檢漏儀\包括我的include目錄

和C:\ Program Files文件(x86)的\視覺檢漏儀\ lib \ Win32添加到我的庫目錄(兩者都用於調試模式)。

我構建和運行使用調試菜單下面的簡單程序(或按F5):

#include <iostream> 
#include <vld.h> //visual leak detector 

using namespace std; 

int main() 
{ 
for (int i = 0; i < 1000000; i++) 
    int *ptr = new int(100); 

return 0; 
} 

泄漏是顯而易見的(和故意)在這裏,來測試功能,但這是報告我回來:

Visual Leak Detector Version 2.3 installed. 
The thread 0x38ac has exited with code 0 (0x0). 
No memory leaks detected. 
Visual Leak Detector is now exiting. 
The program '[8136] Test.exe' has exited with code 0 (0x0). 

任何想法?

編輯:我要指出的是,權利的main()結束之前加入

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

爲了我的代碼的開頭和

_CrtDumpMemoryLeaks(); 

,並在事實上導致Visual Studio的內置泄漏檢測來報告泄漏,但是可視化泄漏檢測器仍然遵循這個報告,稱沒有檢測到內存泄漏並且沒有提供任何信息。

+0

我試過使用它,並懷疑它是否確實能夠準確無誤地識別memleaks或不是:/ – JBL

+0

對於VC++ 2010不適用。經過測試,它檢測到泄漏是正確的。必須在Properties-> Additional Include(或Library)目錄中添加包含和庫。 – SChepurin

+0

這可能只是他們還沒有更新它的新編譯器呢? – Kittenmittons

回答

7

它看起來像是一個VC++ 2013的bug,它在我使用VC++ 2010編譯器時工作。

雖然我可以想象這不適合你。如果它可以幫助你,你可以使用最新的測試版v2.4rc2

+1

現在有2.5版本可用,它可以運行到2015版本。這個對我有用。 – Tomashu