视觉检漏仪在NTDLL上投掷"Access violation reading location".dll

Visual Leak Detector throwing "Access violation reading location" on ntdll.dll

本文关键字:Access violation reading dll location NTDLL 视觉      更新时间:2023-10-16

当我包含:

#include <vld.h>;

在我的stdafx.h中运行我的程序,它说安装了视觉泄漏检测器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.

但我只有在启用视觉泄漏检测器时才能得到这个,所以我的猜测是这就是问题所在。

我确实找到了这个网站:视觉泄漏检测器论坛,有人提到了一个修复,但它导致github repo与vld.cpp文件,我不知道该怎么做。

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

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

我等这一刻很久了。感谢VLD团队

如果你真的不需要使用vld来检测内存泄漏,Dr. memory是一个选择,它对我来说在Windows上工作得很好,和Valgrind一样。

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

在Visual Studio中进入DEBUG>Exceptions…并添加"本机运行时检查"。当你弄乱内存时,你的代码就会崩溃。查看您在调用堆栈中的位置,并调查您最近一次内存修改的位置。

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

我在Visual Studio 2019中调试时面临这个问题。我解决了这个问题,删除了隐藏目录.vs和所有DebugRelease目录。(VS必须关闭)
在新的构建之后,一切都运行良好。

2.5.1版本(如@hariprasad提到的)已经安装在我的计算机上。

离题:我有几个关于.vs目录的问题。第一次尝试,如果我有一个奇怪的问题是删除这个文件夹和重建。