Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio无法使用调试器(AccessViolationException)。以随机顺序执行的代码_C#_Visual Studio_Visual Studio 2013_Windows 10 - Fatal编程技术网

C# Visual Studio无法使用调试器(AccessViolationException)。以随机顺序执行的代码

C# Visual Studio无法使用调试器(AccessViolationException)。以随机顺序执行的代码,c#,visual-studio,visual-studio-2013,windows-10,C#,Visual Studio,Visual Studio 2013,Windows 10,到今天为止,我无法再使用Visual Studio调试任何c代码。如果使用调试器,可以命中断点,但一旦执行暂停,问题就开始了。按Step Into或Continue通常会生成一个AccessViolationException,表示内存已损坏并终止当前请求。如果我再运行一个web请求,我将得到一个SEHException(发生在未知模块中) 更奇怪的是,如果AccessViolationException未触发,则显示下一条语句的程序计数器将随机跳转。然后以随机顺序执行代码!(直到它崩溃) 如果

到今天为止,我无法再使用Visual Studio调试任何c代码。如果使用调试器,可以命中断点,但一旦执行暂停,问题就开始了。按Step Into或Continue通常会生成一个
AccessViolationException
,表示内存已损坏并终止当前请求。如果我再运行一个web请求,我将得到一个
SEHException
(发生在未知模块中)

更奇怪的是,如果AccessViolationException未触发,则显示下一条语句的程序计数器将随机跳转。然后以随机顺序执行代码!(直到它崩溃)

如果未命中断点,则应用程序将在调试模式下正常运行(即使已连接调试器)

我相信这不是代码问题。我可以用一个新项目和以下代码重现访问冲突:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello world");
        Console.WriteLine("Access violation"); // This will throw if breakpoint set
    }
}

已删除VS缓存、删除.suo、清理并尝试安全模式。一个可能的怀疑是,这是在Windows10预览机上,上周有一个更新。我真的不知道该去哪里确认它,或者在不重新成像机器的情况下修复它。

任何CPU更改为
x64
在我的“Hello World”测试项目中为我解决了这个问题

为了开始我原来的项目,这实际上是一个网络项目,我不得不采取一些额外的步骤

  • 将项目中的所有库更新为
    x64
    ,而不仅仅是web项目
  • 在VS2013中启用64位IIS express<代码>工具>选项>项目和解决方案>Web项目>使用64位IIS…
  • 通过控制面板(
    打开或关闭Windows功能
    )安装
    Internet信息服务可承载Web核心。在执行此操作之前,在以
    HttpException(0x80004005)的形式启动64位web项目时,我会遇到一个错误:指定的参数超出了有效值的范围。安装HWC修复了它

  • 仍然没有人知道为什么会发生这种情况,但至少我可以再次调试项目。

    这个异常似乎无缘无故地出现,当然也让我有些头疼,但我能够通过执行以下操作来解决我的问题:

  • 调查受影响项目的属性
  • 转到“调试”选项卡
  • 取消选中“启用本机代码调试”

  • 这里有几件事你可以做-第一,尝试启用中断异常,第二,尝试将目标平台从“任意CPU”更改为“x86”,第三,检查此链接。我的直觉是,这是一个VS问题,而不是代码问题。我也遇到了这个问题,然后我将目标平台从
    Any CPU
    更改为
    X64
    ,这对我来说很有用。@JeffreyZhang谢谢。我没有尝试x64,但奇怪的是它居然能工作。我需要再调整一点,但这让我走到了最前面。谢谢,我也遇到了这个问题。我已经暂时解决了是否将其强制为x86,因为x64与某些引用不兼容。我在VS2017中的web项目中遇到了类似的调试器问题。我只要做你的第二步,一切都会好起来的。对于控制台应用程序和WPF应用程序,我必须与x64兼容,否则我会出现调试问题。这是不能接受的。