Visual Leak Detector在ntdll.dll上抛出“访问冲突读取位置”

时间:2016-10-28 07:56:50

标签: c++ visual-studio c++11 visual-leak-detector

当我包括:

#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 个答案:

答案 0 :(得分:3)

如果您真的不必使用vld来检测内存泄漏,那么Memory博士是一个选项,它在Windows上对我很有用,和Valgrind一样。

答案 1 :(得分:2)

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

在Visual Studio中,转到DEBUG&gt; Exceptions ...并添加&#34; Native Run-Time Checks&#34;。当你弄乱内存时,你的代码会破裂。查看您在调用堆栈中的位置,并调查最近的内存修改。

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

答案 2 :(得分:2)

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

我等了一会儿。感谢VLD团队

答案 3 :(得分:0)

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

2.5.1 版(如@hariprasad 所述)已安装在我的计算机上。

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