Visual Studio 2008停止显示错误

时间:2014-06-28 18:37:14

标签: c#

经过几个月的不活动,我决定再次使用Microsoft Visual Studio(C#)。

点击“开始调试”后我得到了Windows错误(我认为svchost.exe已停止工作)我不知道这是否与我要说的相关,但我没有得到任何错误,例如我正在调用数组越界。

该程序只是不执行与错误相关的代码(我注意到数组和文件I / O问题)但继续正常运行这让我发疯,因为我必须点击“开始调试”之后我写每行代码只是为了确保我是正确的。

所以,Debug>例外,那里的混乱,我以前没有触及它。 任何帮助将不胜感激。

编辑:我已经重新启动了3次我的计算机,刚刚完成了清理和重建(项目),没有任何改变。

EDIT2:对不起,如果它令人困惑,这里有一些新信息:

public partial class frmMain : Form
{
    PictureBox[] pic = new PictureBox[120];
    public frmMain()
    {
        InitializeComponent();
    }
    private void frmMain_Load(object sender, EventArgs e)
        {
            // Creating pictureboxes
            for (int i = 1; i <= 199; i++) //199 instead of 120 or 119 and the rest of the for isn't executed plus no error or warning displayed.
            {
                pic[i] = new PictureBox();

EDIT3:下面是另一个例子。如果我尝试在没有try-catch序列的情况下读取不存在的文件,那么整个pic []矩阵就像在程序运行时从内存中卸载一样。

    pic[i].Image = Image.FromFile("H:\\My Pictures\\" + i + ".jpg");

EDIT4:谢谢你的时间。我尝试了“Release”而不是“Debug”,问题已经修复了一段时间。

当我决定在“OutofRangeException”上按“Continue”而不是“Break”时,Windows会弹出以下消息:“Windows必须在兼容模式下运行该程序”。现在,当我按下“开始调试”时,它就像之前一样......

2 个答案:

答案 0 :(得分:0)

你在Windows / .Net / C#/ Wow64中遇到了一个已知的错误,当Form.Load事件处理程序抛出异常时会发生这种错误。

VS2010 does not show unhandled exception message in a WinForms Application on a 64-bit version of Windows

来自Hans Passant's回答:

  

这是Windows wow64仿真层引发的一个令人讨厌的问题   允许32位代码在64位版本的Windows上运行。它   吞下触发Load事件的代码中的异常。   防止调试器看到它​​并踩到它。这是   显然很难解决,微软的Windows和DevDiv团队   来回指尖。 DevDiv无能为力,   Windows认为这是正确的行为,就像那样神秘   声音。附加调试器只是一个问题,你的代码会   像往常一样没有一个炸弹。

答案 1 :(得分:0)

听起来你可能正在处理这个问题:

Something swallowing up unhandled exceptions?

基本上,在64位计算机上构建时,有时会吞下异常。

我相信可能有一个修补程序,如下所述:

https://connect.microsoft.com/VisualStudio/feedback/details/357311/silent-exceptions-on-x64-development-machines

以下是修补程序:http://support.microsoft.com/kb/976038

否则,尝试将目标构建设置为x86而不是x64或&#34;任何CPU&#34;。还可以尝试在发布模式下运行,看看是否发生异常。

如果这不是问题,那么您可能需要重新安装Visual Studio。如果您正在使用Visual Studio Express,为什么不升级到比2008更新的版本?

编辑:

此外,尝试将所有服务包和修补程序应用于操作系统。如果您使用的是Windows 7,那么您肯定应该使用SP1。您还应该确保使用的是Visual Studio 2008 SP1和所有修补程序。