【发布时间】:2014-08-09 06:42:57
【问题描述】:
好的,所以我在调试方面遇到了很多问题。我正在使用 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();
}
}
}
我不知道是什么原因造成的。如果我单击“确定”并再次运行它,它将起作用,大多数时候。有时我必须做两次。
有什么想法吗?
堆栈跟踪:
【问题讨论】:
-
您可以通过编写控制台应用程序在
System.Windows.Forms.dll中获得该异常。您确定我们可以通过运行您的代码来重现该异常吗? -
正是我的观点。它不是我的代码。但我猜想与 Visual Studio 有关。如果必须,我可以制作视频大声笑来证明代码会产生错误。
-
可能是调试器探测/反映变量...
-
@JABFreeware,也许它是一个 Visual Studio 扩展?该视频会很好,因为它可以帮助我们了解异常是从哪里生成的。
-
你描述的不太可能。解决方案中还有其他项目吗?当您不在调试器下运行时会发生这种情况吗?您的控制台程序甚至链接到 Windows.Forms.Dll 吗?您是否启用了任何 Visual Studio 扩展? (如果是这样,请禁用它们。)我无法重现您的问题。显然,这里的其他人也不能。所以你的配置肯定有什么不同。
标签: c# debugging runtime-error