Visual Studio 2008停止显示错误

本文关键字:显示 错误 Studio 2008 Visual | 更新日期: 2023-09-27 18:10:50

沉寂了几个月后,我决定再次使用Microsoft Visual Studio (c#)。

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

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

Debug> Exceptions,这里很乱,我以前没碰过。如有任何帮助,不胜感激。

编辑:我已经重新启动了3次我的电脑,并做了清理和重建刚刚(项目),没有任何改变。

编辑2:对不起,如果它混淆了,这里有一些新的信息:

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");
编辑4:谢谢你的时间。我尝试了"发布"而不是"调试",问题被修复了一段时间。

当我决定按"继续"而不是"中断"在"outtofrangeexception"上,Windows弹出这个消息:"Windows必须在兼容模式下运行程序"。现在,当我按下"开始调试",它就像之前一样…

Visual Studio 2008停止显示错误

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

某些东西吞噬了未处理的异常?

基本上,当在64位机器上构建时,有时会忽略异常。

我相信可能会有一个修复程序,如下所示:

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

下面是修复程序:http://support.microsoft.com/kb/976038

否则,尝试将目标构建设置为x86而不是x64或"任意CPU"。也试着在发布模式下运行,看看是否会出现异常。

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

编辑:

同时,尝试将所有的服务包和补丁也应用到操作系统中。如果你使用的是Windows 7,那么你应该安装SP1。您还应该确保使用的是Visual Studio 2008 SP1和所有补丁。

你在Windows/. net/c#/Wow64中遇到了一个已知的错误功能,这发生在Form。加载事件处理程序抛出异常。

VS2010在64位Windows版本的WinForms应用程序中没有显示未处理的异常消息

摘自汉斯·帕桑特的回答:

这是一个由Windows wow64模拟层引起的严重问题它允许32位代码在64位版本的Windows上运行。它吞噬触发Load事件的代码中的异常。防止调试器看到它并介入。这是微软的Windows和DevDiv部门显然很难修复互相指指点点。DevDiv对此无能为力Windows认为这是正确的行为,这很神秘的声音。这只是一个附带调试器的问题,你的代码会像往常一样没有炸弹。