截至今天,我无法再使用 Visual Studio 调试任何 c# 代码。如果我使用调试器,可以点击断点,但是一旦执行暂停,麻烦就开始了。按 Step Into 或 Continue 通常会生成AccessViolationException
内存已损坏并终止当前请求的说法。如果我再运行一个进一步的网络请求,我会得到一个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,清理并尝试安全模式。一个可能的嫌疑人是这是在 Windows 10 预览机器上,上周有更新。我不确定还有什么地方可以确认它,或者在不重新映像机器的情况下修复它。