我使用Reflection(Method.Invoke)在.NET中調用函數。如果在此方法內發生錯誤並引發異常,則調試器不顯示實際的代碼,而是在Invoke()調用中停止。我可以從InnerException中檢索異常信息,但與使用callstack進行常規調試等相比,這非常不方便。可以使用Method.Invoke調用的方法像常規函數調用一樣調試嗎?調試.NET中的調用函數
5
A
回答
0
我的解決辦法是建立內部Tick()
定時器和呼叫方法:
GUI代碼 - >通過Method.Invoke通話功能 - >功能設置一定時器 - >蜱有函數體
可惜這不是很漂亮(,不適合在某些情況下)
6
你喜歡的是「Just My Code」功能。調試器默認將調試限制爲開發人員認爲已編寫的代碼。這可以減少在調試WPF或WinForms啓動時會出現的大量噪音。
爲了讓像Exception助手這樣的項目運行所有代碼,您應該禁用Just My Code。
- 工具 - >選項
- 調試
- 取消選中「啓用僅我的代碼調試」
2
如果一切都失敗了,你也可以把這樣的事情成被調用的方法:
#if DEBUG
System.Diagnostics.Debugger.Break();
#endif
這將基本上「以編程方式」在那裏引起斷點。
你也可以把它做稍微好一點:
if(Debugger.IsAttached)
Debugger.Break();
所以,如果你實際上是在調試器中運行它,它會只有突破。
編輯:
月2思想,如果你的代碼進行編輯,那麼你可能只是堅持經常有斷點的VisualStudio通過。我想我的答案是沒有意義的...對不起:)
+1
您的回答非常有意義,請參閱@ JaredPar的回答。我遇到了跳過斷點和您的方法奏效的問題。 – ajeh 2016-07-04 15:31:04
相關問題
- 1. 試圖從F調用.NET API函數#
- 2. .net調用php函數
- 3. 用GDB調試編程調用函數
- 4. 在.net中調用mprapi.dll函數
- 5. 在C#中自動調用函數.Net
- 6. Visual Studio在調試器中調用函數之前調用函數
- 7. 調試停止時調用函數
- 8. 從IronPython的調用函數的.Net [VS2012]
- 9. 試圖調用函數「iconv_strlen」
- 10. 在C中調試函數
- 11. 在UFT中調試函數
- 12. SQL函數調試
- 13. 調試javascript函數
- 14. .NET調試
- 15. .NET調試 - System.Threading.ExecutionContext.runTryCode
- 16. 調試.NET HttpWebRequest的
- 17. 使用PhpStorm調試JavaScript中調用的Laravel函數
- 18. 如何調試.NET遠程調用?
- 19. 函數的調試優化
- 20. 試圖在html中調用javascript函數
- 21. 如何在Xcode調試器中調用嵌套的Swift函數?
- 22. 如何在PHP中調試「調用未定義的函數session_register()」?
- 23. 如何去在Eclipse中調試模式下的函數調用
- 24. 使用SOS調試.net
- 25. 如何調試.NET中stackoverflowexception
- 26. 從actionscript調用.net dll函數
- 27. 調用表值SQL函數從.NET
- 28. 同時調用兩個Matlab函數.net
- 29. 從C#.Net調用Java函數
- 30. 調用函數到SQL .NET 3.5
不幸的是,「啓用僅我的代碼」已經選中。但它似乎無關緊要,因爲呼叫者和被呼叫者實際上都是我的代碼。 – John 2011-05-16 23:30:57
@John,那很奇怪。我的下一步是打開所有異常類型的「break break」,並查看是否將我拋棄了我的預期。這不會解決你的問題,但它會讓我們更進一步。 – JaredPar 2011-05-16 23:33:07
這是非常奇怪的,在打開「break on throw」之後,我得到了未能加載的XmlSerializer程序集的FileNotFound異常。沒有「投擲」,一切正常。 – John 2011-05-16 23:39:38