程序随机获取System.AccessViolationException

时间:2014-06-18 20:32:43

标签: c# debugging runtime-error

好的,所以我在调试方面遇到了很多问题。我正在使用VS2013 Pro和Windows 8.1。两者都是最新的。问题是,当我开始调试时,它会抛出此错误的一半时间:

  

未处理的类型' System.AccessViolationException'   发生在System.Windows.Forms.dll

中      

附加信息:尝试读取或写入受保护的内存。   这通常表明其他内存已损坏。

这也不是我的代码的错。我做了一个简单的测试作为例子如下。请注意,我没有从此应用程序引用System.Windows.Forms。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<int> testing = new List<int>();
                for(int i =0; i < 50; i++)
                {
                    testing.Add(i);
                }

                for (int i = 0; i < 50; i++)
                {
                    Console.WriteLine(testing[i].ToString());

                }

                Console.ReadLine();
            }
        }
    }

我不知道造成这种情况的原因。如果我单击“确定”并再次运行它,它将起作用。偶尔我必须做两次。

有什么想法吗?

堆栈追踪:

enter image description here

6 个答案:

答案 0 :(得分:8)

将平台目标更改为x86对我来说很有用,如果没有前面提到的异常,就不可能单步执行代码。我运行Win 8.1 64位和Visual Studio 2013。

答案 1 :(得分:5)

我也使用visual studio express2015在windows10上遇到了这个问题。构建到x86并没有解决我的问题,但以下解决方法做了诀窍:

此问题是由收集返回值的代码引起的。可以通过禁用托管返回值来解决此问题。

  1. 转到系统属性(Win8:WinKey + X,选择'系统',Win7:从我的电脑打开'属性')
  2. 高级系统设置
  3. 环境变量......
  4. 点击“新建”并添加
    • 名称:VSDebug_DisableManagedReturnValue
    • 价值:1
  5. 来源:https://connect.microsoft.com/VisualStudio/feedback/details/819552/visual-studio-debugger-throws-accessviolationexception

答案 2 :(得分:3)

http://veriworld.verivox.ads/docs/DOC-6011?et=watches.email.document_comment#comment-4629

似乎在某些情况下,VS / .net框架存在内存踩踏问题。我真的希望人们不要再说'它不能成为&#39;当有人说某事打破时。

答案 3 :(得分:1)

没有什么看起来可能会导致问题。

您是否尝试过启用异常?这将导致代码在遇到异常时暂停。

enter image description here

答案 4 :(得分:1)

我可以确认这个问题。它出现在我自己的商业应用程序分发的一个小的(非常简单的)WinForms程序中。在任何早期版本的VS回到VS2005中都没有发生过,包括那些在同一台机器上运行的版本。它只发生在VS2013中。我的VS版本没有第三方加载项,除了VS本身安装的加载项。即使“Main()”中的所有代码都被注释掉,也会出现问题。我尝试重新启动,禁用病毒检查程序,防火墙等。我的应用程序的目标版本(2.0,3.5,4.0,无论如何)没有区别。它经常发生但随机发生。有时候它有效,有时则不然。去图。

答案 5 :(得分:1)

在我的情况下,这种VS行为是由Comodo防火墙引起的。

解决方案是将VS Projects文件夹添加到Comodo HIPS排除列表中(即使HIPS已关闭!)。

以下是相关帖子Comodo论坛:https://forums.comodo.com/empty-t98149.0.html