Visual Leak Detector不报告泄漏

Kit*_*ons 14 c++ memory-leaks visual-leak-detector visual-studio-2013

我使用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;
}
Run Code Online (Sandbox Code Playgroud)

泄漏在这里显而易见(并且是有意的),以测试功能,但这是我回来的报告:

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).
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑:我应该指出添加

#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
Run Code Online (Sandbox Code Playgroud)

到我的代码的开头和

_CrtDumpMemoryLeaks();
Run Code Online (Sandbox Code Playgroud)

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

小智 7

它看起来像VC++ 2013的一个错误,它在我使用VC++ 2010编译器时确实有效.

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