当我包括:
#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周年更新引起的,但我不确定。
答案 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
以及所有 Debug
和 Release
目录。(VS 必须关闭)< br/>
新构建后一切正常。
2.5.1 版(如@hariprasad 所述)已安装在我的计算机上。
Offtopic:我有几个关于 .vs
目录的问题。如果我有一个奇怪的问题,首先尝试删除此文件夹并重建。