我对使用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泄漏检测器仍然遵循此报告,说没有检测到内存泄漏并且没有提供任何信息。
答案 0 :(得分:7)
它似乎是VC ++ 2013的一个错误,当我使用VC ++ 2010编译器时它确实有用。
虽然我可以想象这不适合你。如果它对您有帮助,您可以使用最新的测试版v2.4rc2。