2011-07-11 92 views
3

我今天正在使用Windows應用程序,當時我的錯誤不再像往常一樣顯示。相反,調試器只是跳出該方法。輸出窗口會記錄異常,但通常的彈出軌跡不會顯示。Visual Studio 2010調試器不再停止出現錯誤

它可以在其他項目中工作,並且我已將Dim i as Integer = "A"作爲第一行嘗試提出錯誤,但它只是退出該行的子項。

任何想法如何讓它恢復?

回答

11

調試器與64位版本的Windows 7在Load事件中發生交互時存在一個錯誤。一個異常被Windows困住並被吞噬,調試器從來沒有機會檢測到它是未處理的。您將看到的唯一情況是在「輸出」窗口中發出「第一次機會」通知。 Load事件處理程序將立即終止,並且您的程序會繼續運行,就像沒有發生任何事情一樣,假設它沒有繞過關鍵的初始化代碼。這個bug已經存在了很長時間,並且是微軟所熟知的,顯然它很難修復。

您可以使用Project + Properties,Compile選項卡,向下滾動,Advanced Compile Options按鈕來解決此問題。將目標CPU設置更改爲「AnyCPU」。捕獲它的另一種方法是使用Debug + Exceptions,在CLR Exceptions上勾選Thrown複選框。另一個解決方法是將初始化代碼放入構造函數中,而不是OnLoad()或Load事件。當你需要知道窗口的實際大小時,你只需要加載。

這個錯誤只會在您調試時觸發。它不會發生在用戶的機器上。


UPDATE:我擴大對這一不幸事件一個很大的this post

3

您的.suo文件是否被任何機會刪除(這是存儲您的解決方案的個人狀態的文件,您的設置,展開/摺疊的內容)。如果您突然注意到您必須點擊「全部摺疊」,因爲它已經被遺忘,您將只能真正發現這一點,它會在您打開解決方案時重新創建,但會使用默認設置執行此操作。

如果是這樣,請按CTRL + ALT + E,然後重新勾選CLR異常的異常中止複選框。

+0

我剛剛檢查了投擲框,它現在打破了錯誤,但在我的其他項目投擲沒有被檢查,並仍然在錯誤中斷。無論如何離開這個檢查有沒有什麼傷害?我認爲這與我今天添加的UnitTest有關,第一次看到它們時,並不認爲它會這樣做。有沒有更好的方法來重新啓用它? – baileyswalk

7

在Debug-> Exceptions下檢查是否選中了Common Language Runtime異常。

+0

這工作,但它是一個黑客?看到上面的帖子......我認爲這可能與我今天添加的單元測試有關。 – baileyswalk

相關問題