Dot-Net
在 .NET 中調試呼叫的函式
我使用反射(Method.Invoke)在.NET中呼叫函式。如果此方法內部發生錯誤並引發異常,則調試器不會顯示實際程式碼,而是在 Invoke() 呼叫時停止。我可以從 InnerException 檢索異常資訊,但這與使用呼叫堆棧等進行正常調試相比非常不方便。可以像正常函式呼叫一樣調試使用 Method.Invoke 呼叫的方法嗎?
您喜歡點擊的是“Just My Code”功能。預設情況下,調試器將調試限制為被認為是由開發人員編寫的程式碼。這減少了在調試 WPF 或 WinForms 啟動時會出現的大量噪音。
為了讓所有程式碼都執行異常助手之類的項目,您應該禁用“僅我的程式碼”。
- 工具 -> 選項
- 調試器
- 取消選中“僅啟用我的程式碼調試”
如果一切都失敗了,您還可以將這樣的內容放入被呼叫的方法中:
#if DEBUG System.Diagnostics.Debugger.Break(); #endif這將基本上“以程式方式”在那裡導致斷點。
您還可以通過執行以下操作使其稍微好一點:
if(Debugger.IsAttached) Debugger.Break();因此,只有在您實際在調試器中執行它時它才會中斷。
編輯:
第二個想法,如果你有編輯它的程式碼,那麼你可以通過 VisualStudio 在那裡放置一個正常斷點。我想我的回答沒有意義……對不起:)