gpt4 book ai didi

c++ - Visual Leak Detector 不报告泄漏

转载 作者:IT老高 更新时间:2023-10-28 22:41:00 26 4
gpt4 key购买 nike

我对使用 Visual Studio 2013 有点陌生,我正在尝试让 Visual Leak Detector(2.3 版)工作,以便检查我的项目是否存在内存泄漏。

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

和 C:\Program Files (x86)\Visual Leak Detector\lib\Win32 到我的库目录(都用于 Debug模式)。

我使用调试菜单(或按 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 泄漏检测器仍然通过说没有检测到内存泄漏并且不提供任何信息来跟踪此报告。

最佳答案

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

虽然我可以想象这不是你的选择。如果对您有帮助,您可以使用最新的 beta 版本 v2.4rc2 .

关于c++ - Visual Leak Detector 不报告泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21721088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com