2016-10-28 52 views
10

当我包括:视觉检漏仪抛出“访问冲突读取位置”上的ntdll.dll

#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. 

但我只得到这个当我使视觉检漏仪,所以我的猜测是,这就是问题所在。

但我找到了这个站点:Visual Leak Detector Forums有人提到了一个修复,但它导致一个github回购与vld.cpp文件,我不知道如何处理它。

看来错误是由Windows 10 aniversary更新造成的,但我不确定。

+0

Haha,jelmer:')Ik heb het zelfde probleem ... – Ken

+0

我有同样的问题,但我的程序dosnt甚至开始。 –

+2

这个问题实际上与C++或C++ 11无关。由于“Visual Leak Detector”是第三方产品,因此您可能需要添加相关标签,以吸引使用/维护此类产品的人员的注意。 – Peter

回答

2

某些Windows API正在分配自己的内存来处理一些内部数据。你可能试图惹上那种内存。

在Visual Studio中,转到DEBUG> Exceptions ...并添加“Native Run-Time Checks”。当你弄乱内存时,你的代码会崩溃。看看你在调用堆栈中的位置,并调查最后一次内存修改。

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

3

如果你真的不需要使用vld来检测内存泄漏,Dr. Memory是一个选项,它在Windows上非常适合我,与Valgrind相同。

相关问题