2013-08-16 58 views
3

當我調試我的asp.net網站時,爲什麼反彙編/拆卸窗口會彈出一些時間?當我調試我的asp.net網站時,爲什麼反彙編/反彙編窗口有時彈出?

它發生了一些時候,並不總是。我在互聯網上搜索,但沒有找到有用的結果。例如:它發生在我試圖調試查詢時;它出現在我到達特定的代碼段後,我使用了4個文本框中的一個,同時使用更新面板禁用其他文件(這裏沒有什麼突破)。

我的代碼工作正常,我再說一遍,這個反彙編的東西不會導致任何問題,只是這個沒有發生過。

這是否意味着我的代碼或我寫代碼的方式有什麼問題......或者是什麼?

+0

首先(+5)在stackoverflow :)歡迎來到stackoverflow! – Pyromancer

回答

5

在工具,選項,調試嘗試禁用「啓用地址級調試」。

我會補充一點,你經常可以啓用「只啓用我的代碼」(同一頁),但我認爲當我的代碼之外存在問題時禁止理解它是有用的。

如果您有以下情況,該窗口通常會顯示:Enable address-level debugging已啓用,Enable just my code已禁用,並且已配置調試程序以中斷拋出的異常。

通常在.NET代碼/其他庫代碼中引發一些「良性」(非終結)異常,並且不會在代碼中出現。如果所有這些選項都「啓用(意思就像我告訴過你的那樣)」,調試器將打破這些異常(非常無聊),並且必須向您展示一些東西......但它沒有源代碼,所以它會告訴你反彙編(或者是一個空的窗口,詢問你是否想查看反彙編,如果你有「顯示反彙編,如果源不可用」禁用)

+0

謹慎提及利弊,甚至是一般影響? –

+0

@GrantThomas從[這裏](http://msdn.microsoft.com/en-us/library/ms165012.aspx):'如果你啓用了只是我的代碼,當發生異常時中斷:引發不會導致調試器如果在.NET Framework方法或其他系統代碼中引發異常,則立即中斷。而是繼續執行直到調試器遇到非系統代碼,然後中斷。因此,當發生異常時,您不必逐句瀏覽系統代碼。「但是通常情況下,反彈到您的代碼的異常會被其他外部代碼修改......通常能夠看到異常的位置天生 – xanatos

+0

謝謝,但我並不是爲了我的直接利益而說話,我的意思是讓答案不僅僅是立即解決問題,而是提供一些非常有用的信息。就這個特性而言,這也是冰山一角。 –

2

當你試圖調試代碼時出現反彙編窗口您沒有符號,並且您已啓用地址級調試。

最常見的方法是嘗試進入.Net代碼。