在我的C#應用程序中,我使用stacktrace來捕獲方法名稱和文件名以防失敗。stacktrace優化
x86和x64平臺之間的堆棧跟蹤有一些區別。
public string ErrorMessage
{
set
{
_strErrorMessage = "Error : " + value;
//Call the method to log error.
LogError(value);
}
}
在上面的代碼片段中,在設置ErrorMessage屬性,我打電話的LOGERROR方法,這是捕獲堆棧跟蹤,並將其寫入日誌文件。
MethodA()
{
Logger obj=new Logger();
obj.ErrorMessage="Failure";
}
在這種情況下,在x86平臺上,堆棧跟蹤包含兩個堆棧幀。一個用於methodA,另一個用於ErrorMessage屬性的setter。
在x64平臺上,堆棧跟蹤僅包含methodA的一個堆棧幀,並且ErrorMessage屬性的設置者沒有堆棧幀。
任何人都可以向我解釋如何在獲取堆棧跟蹤時進行優化嗎?
凡'MethodA'獲取調用?此代碼不完整。 – 2011-04-11 09:11:05
交叉發表:http://social.msdn.microsoft.com/Forums/en/csharplanguage/thread/6aa690fc-d2f4-4d04-9dca-cf9d5a445724 – 2011-04-11 09:11:48