Visual Leak Detector不报告泄漏

时间:2014-02-12 07:14:03

标签: c++ memory-leaks visual-studio-2013 visual-leak-detector

我对使用Visual Studio 2013有点新,并且我正在努力使Visual Leak Detector(版本2.3)工作,以便我可以检查我的项目是否有内存泄漏。

我已安装并已添加 C:\ Program Files(x86)\ Visual Leak Detector \ include到我的include目录

和C:\ Program Files(x86)\ Visual Leak Detector \ 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).

有什么想法吗?

编辑:我应该指出添加

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

到我的代码的开头和

_CrtDumpMemoryLeaks();

在main()结束之前,确实导致Visual Studio的内置泄漏检测报告泄漏,但是Visual泄漏检测器仍然遵循此报告,说没有检测到内存泄漏并且没有提供任何信息。

1 个答案:

答案 0 :(得分:7)

它似乎是VC ++ 2013的一个错误,当我使用VC ++ 2010编译器时它确实有用。

虽然我可以想象这不适合你。如果它对您有帮助,您可以使用最新的测试版v2.4rc2