Visual Studio社区2015访问违规退出Hello World

时间:2016-03-23 02:24:47

标签: debugging

退出(在调试模式下)最简单的应用程序时出现访问冲突。 这是我的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]

有任何线索吗?有人知道发生了什么吗?

1 个答案:

答案 0 :(得分:1)

好;对我感到羞耻...... 我正在回答我自己的问题,因为它可以向其他人澄清同样的问题。我必须说这个问题与Visual Studio 2015无关,而其他Windows编译器(实际上是调试器)也是如此。

我问a2hooks32.dll,Emsisoft反恶意软件制造商的所有者,支持人员立即发送了答案:

  

...行为阻止程序将尝试查找文件的哈希以验证它,同时阻止可执行文件暂时运行的能力。显然,这会导致访问冲突,因为连接的调试器也在访问该文件。

嗯,就是这样。在反恶意软件中列出可执行文件解决了我的当务之急。