退出(在调试模式下)最简单的应用程序时出现访问冲突。 这是我的C ++程序; win32控制台应用程序,空项目,没有预编译的头文件,没有SDL检查:
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
当处于调试模式(F5)时,会产生: 在hello.exe中0x778AB2D5(ntdll.dll)抛出异常:0xC0000005:访问冲突读取位置0x7179FFFF。
我已经修复并重新安装了Visual Studio 2015社区,现在安装了VS Community Update 2RC,结果相同。没有调试(Ctrl + F5)
启动时没问题调试时我可以输入exe_common.inl,直到第264行,抛出异常(18次):
if (!__scrt_is_managed_app())
exit(main_result); // -->> here
编辑: 调用堆栈显示:
ntdll.dll!_RtlFreeHeap@12 () Unknown KernelBase.dll!_LocalFree@4 () Unknown a2hooks32.dll!7420ec83() Unknown [Frames below may be incorrect and/or missing, no symbols loaded for a2hooks32.dll] a2hooks32.dll!7421014f() Unknown a2hooks32.dll!74207565() Unknown a2hooks32.dll!742078b1() Unknown a2hooks32.dll!74206e6d() Unknown a2hooks32.dll!7420658d() Unknown a2hooks32.dll!742037fd() Unknown a2hooks32.dll!7421ac69() Unknown a2hooks32.dll!7421ad4f() Unknown [External Code]
有任何线索吗?有人知道发生了什么吗?
答案 0 :(得分:1)
好;对我感到羞耻...... 我正在回答我自己的问题,因为它可以向其他人澄清同样的问题。我必须说这个问题与Visual Studio 2015无关,而其他Windows编译器(实际上是调试器)也是如此。
我问a2hooks32.dll,Emsisoft反恶意软件制造商的所有者,支持人员立即发送了答案:
...行为阻止程序将尝试查找文件的哈希以验证它,同时阻止可执行文件暂时运行的能力。显然,这会导致访问冲突,因为连接的调试器也在访问该文件。
嗯,就是这样。在反恶意软件中列出可执行文件解决了我的当务之急。