簡體   English   中英

如果從Microsoft的代碼中拋出異常,我如何找出最初導致異常的內容?

[英]How do I find out what originally caused an exception, if it gets thrown from Microsoft's code?

我在DockPanel不同窗格上有兩個包含DataGridView的控件。 如果一個處於編輯模式並且我切換窗格,我會從DataGridViewEndEdit()方法中拋出NullReferenceException 堆棧跟蹤不會比那更深,並且異常不包含任何其他信息。

我在反射器中看過那個方法,我看不到任何明顯的null。 我懷疑這個問題實際上是在我的代碼中,但異常是從Microsoft的代碼中重新拋出,並且正在重置堆棧跟蹤。 我怎樣才能找出最初造成異常的原因?

如果您懷疑MS代碼中存在錯誤,可以從符號服務器下載調試符號,加載它們並在調試時跟蹤它? 像這樣

請注意,符號受各種許可證之一的約束。 如果(例如)您處理“單聲道”貢獻等,這可能會影響您。

你有沒有看過InnerException屬性?

按照說明設置MS 符號服務器源服務器 1 將調試器設置為在拋出NullReferenceException時中斷。 然后,您將獲得調試的完整源代碼,或至少完整的堆棧跟蹤。

1注意,列出的QFE包含在SP1中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM