我有一個死的簡單的單線程方法,我不希望在堆棧跟蹤中看到:是否有可能?也許用一個屬性來標記它?爲了澄清,我沒有試圖在調試器中打印跟蹤,重新拋出或自動逐步掃描。我希望方法不首先顯示在跟蹤中,因爲跟蹤是由一些第三方代碼處理的。我想在運行時控制,我對調試不感興趣。 我在說這是因爲我在StackTrace上閱讀的大部分內容似乎都是關於這些主題的。C#:如何從堆棧跟蹤隱藏一個方法?
5
A
回答
2
這隻能在你的方法被內聯時完成。 JIT執行它,或者你自己做(更改代碼)。然而,對於內聯方法,JIT是非常保守的,實際上只有當方法非常小或者當方法用於循環時纔會這樣做。
-1
正如在回答其他問題Most Useful Attributes時所述,您需要爲您的方法指定System.Diagnostics.DebuggerHidden屬性。
+0
不幸的是,在這裏不適用,顧名思義(和文檔狀態)它只是一個調試器屬性,取決於調試器篩選標記的方法,但該方法仍然在第一個堆棧跟蹤中註冊地點。 我的上下文不是調試時間,這是針對Unity(遊戲引擎)的,它輸出完整的日誌或異常堆棧,因此Unity必須有意地過濾掉這些方法。我害怕我想要做的事情(根本不在堆棧跟蹤中)根本不可能。 – benblo 2014-05-13 18:48:57
相關問題
- 1. 如何隱藏瀏覽器中的堆棧跟蹤(使用Jetty)?
- 2. C++堆棧跟蹤問題
- 3. 如何堆棧跟蹤extlib?
- 4. 從C#打印堆棧跟蹤信息
- 5. 是否有跟蹤服務方法調用的C#類,如堆棧跟蹤
- 6. 從堆棧跟蹤第一行調用方法:「MyClass.java:1」
- 7. 記錄那些隱藏的堆棧跟蹤
- 8. 爲什麼要「扔掉」;隱藏原來的堆棧跟蹤
- 9. 在xwiki宏中隱藏groovy堆棧跟蹤
- 10. Application Insight中的MVC異常隱藏堆棧跟蹤
- 11. 隱藏堆棧跟蹤由asp.net WebMethod返回的異常?
- 12. 如何從c#中讀取堆棧跟蹤像我的例子?
- 13. 在C++(MSVC)打印堆棧跟蹤?
- 14. C++漂亮的堆棧跟蹤
- 15. C中的堆棧跟蹤功能
- 16. 如何打印Groovy堆棧跟蹤?
- 17. 如何縮短webpack堆棧跟蹤?
- 18. 如何登錄node.js的堆棧跟蹤
- 19. 如何發送堆棧跟蹤到log4j?
- 20. 如何打印StackOverflowException的堆棧跟蹤
- 21. 如何解決堆棧跟蹤誤差
- 22. 堆棧跟蹤處System.Windows.Forms.Control.CreateHandle()
- 23. log4j截斷堆棧跟蹤
- 24. 堆棧跟蹤錯誤
- 25. ASP.NET堆棧跟蹤問
- 26. CryptographicException在堆棧跟蹤
- 27. 打印堆棧跟蹤obfusated
- 28. Logback - 過濾堆棧跟蹤
- 29. 調試堆棧跟蹤
- 30. 異常堆棧跟蹤
如果它是一個簡單的單線程,那麼它是自動的。 JIT優化器將內聯它。但是,當你連接調試器時不行。 – 2010-04-21 13:08:12
漢斯,看我對史蒂文的回答的評論。 – benblo 2010-04-22 11:14:11
不要忘了標記你最喜歡的答案;-) – Steven 2010-06-22 11:27:57