10

当我包括:

#include <vld.h>;

在我的 stdafx.h 中运行我的程序,它说安装了 Visual Leak Detector 2.5。我可以很好地运行我的程序,但是当它退出时,我得到了这个错误:

Exception thrown at 0x00007FFFB7F57FE7 (ntdll.dll) in CPPAssessment.exe: 0xC0000005: Access violation reading location 0x00007FFFB8095252.

If there is a handler for this exception, the program may be safely continued.

但是我只有在启用 Visual Leak Detector 时才会得到这个,所以我的猜测是这就是问题所在。

然而,我确实找到了这个站点:Visual Leak Detector Forums有人提到了一个修复程序,但它导致了一个带有 vld.cpp 文件的 github 存储库,我不知道如何处理它。

似乎该错误是由 Windows 10 周年更新引起的,但我不确定。

4

4 回答 4

3

如果您真的不需要使用 vld 来检测内存泄漏,那么 Dr. Memory 是一个选项,它在 Windows 上对我来说非常有用,与 Valgrind 一样。

于 2017-01-27T05:51:17.377 回答
3

VLD 2.5.1 已发布,其中修复了 Windows 10 的错误。 https://vld.codeplex.com/releases/view/630509

我等了一段时间。感谢 VLD 团队

于 2017-02-07T13:15:32.100 回答
2

一些 Windows API 正在分配自己的内存来处理一些内部数据。你可能正试图弄乱这种记忆。

在 Visual Studio 中,转到 DEBUG>Exceptions... 并添加“Native Run-Time Checks”。当您弄乱内存时,您的代码将中断。查看您在调用堆栈中的位置,并围绕您上次的内存修改进行调查。

我已经使用 VLD 多年,有时它看起来很奇怪,但它总是准确的。如有疑问,请查看 MSDN 中的文档以确定应如何处理内存。

于 2017-01-26T09:30:39.593 回答
0

我在 Visual Studio 2019 中调试时遇到了这个问题。我解决了它,删除了隐藏目录和.vs所有目录。(VS 必须关闭) 新构建后一切正常。DebugRelease

我的电脑上已经安装了 2.5.1 版(如@hariprasad 所述)。

题外话:我有几个关于.vs目录的问题。如果我有一个奇怪的问题,首先尝试删除这个文件夹并重建。

于 2021-04-09T13:11:24.243 回答