[英]Visual Studio 2008 stopped displaying errors
經過幾個月的不活動之后,我決定再次使用Microsoft Visual Studio(C#)。
單擊“開始調試”后,出現Windows錯誤(我認為svchost.exe停止工作了),我不知道這與我要說的內容是否相關,但是當出現錯誤時,我沒有得到任何提示例如,我正在調用數組。
該程序只是不執行與錯誤相關的代碼(我已經注意到了陣列和文件I / O問題),但是繼續正常運行,這使我發瘋,因為在編寫每個代碼后我必須單擊“開始調試”代碼行只是為了確保我是正確的。
因此,“調試”>“異常”,在那兒很混亂,我之前從未碰過。 任何幫助,將不勝感激。
編輯:我已經重新啟動了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:謝謝您的時間。 我嘗試使用“發布”而不是“調試”,並且此問題已解決了一段時間。
當我決定在“ OutofRangeException”上按“ Continue”而不是“ Break”時,Windows彈出此消息:“ Windows必須在兼容模式下運行程序”。 現在,當我按“開始調試”時,就像以前一樣...
您在Windows / .Net / C#/ Wow64中遇到了一個已知的功能失誤,當Form.Load事件處理程序拋出異常時會發生這種情況。
在Windows 64位版本的WinForms應用程序中,VS2010不會顯示未處理的異常消息
從漢斯·帕桑特的回答:
Windows wow64仿真層允許32位代碼在64位版本的Windows上運行,這是一個令人討厭的問題。 它吞下了觸發Load事件的代碼中的異常。 阻止調試器看到它並介入。這顯然很難修復,Microsoft的Windows和DevDiv組正在來回指責。 DevDiv對此無能為力,Windows認為這是正確的行為,聽起來很神秘。 連接調試器只是一個問題,您的代碼將像往常一樣炸毀而沒有一個。
聽起來您可能正在處理此問題:
基本上,在64位計算機上構建時,有時會吞下異常。
我相信這里可能有一個修復程序,如下所示:
這是修復程序: http : //support.microsoft.com/kb/976038
否則,請嘗試將目標內部版本設置為x86,而不是x64或“任何CPU”。 另外,請嘗試以發布模式運行,看看是否發生異常。
如果這不是問題,則可能需要重新安裝Visual Studio。 如果您使用的是Visual Studio Express,為什么不升級到比2008更新的版本?
編輯:
另外,也嘗試將所有Service Pack和修補程序也應用到OS。 如果您使用的是Windows 7,則應確保使用SP1。 您還應該確保使用的是Visual Studio 2008 SP1和所有修補程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.