2016-07-07 86 views
0

最近我一直在評估PostSharp在錯誤報告方面的用法。發現.Net並沒有提供任何特別簡單的機制來獲取棧幀內的值(例如參數),我一直在研究使用Postharp進行方法注入技術。PostSharp訪問本地變量

這證明在使用OnEnter獲取方法的參數值時非常有用,但是我仍然需要以某種形式緩存它。

但是,當涉及到訪問局部變量時,因爲它們在堆棧中,所以我不太確定使用postsharp或其他備用庫可以實現/如何實現。我已經研究了Unmanaged API的Profiling和Debugging,這對於像生成錯誤報告那樣簡單的事情似乎是一種相當笨拙的方法。

回答

0

這對PostSharp來說是不可能的,我想用任何IL編織工具都很難實現。

您需要使用低級IL重寫工具,如Cecil

Generating a minidump file當拋出異常時,這也是一個了不起的選擇。

+0

我很懷疑,但我想我會問這個問題。基本上我們試圖實現的是模擬我們以前使用的另一個工具,但是缺少更新和支持,我們不得不廢棄,這是作爲堆棧跟蹤本地和參數值的一部分提供的。在生成和讀取minidump文件時(我已經有學習如何讀取PDB文件的痛苦),我也有點生疏。 –