在我的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