.NET 检查跟踪堆栈

在.NET捕获异常时会有个当前堆栈信息;
如果想在不发生异常的时候跟踪堆栈呢。

StackTrace 类
命名空间:  System.Diagnostics
程序集:  mscorlib(在 mscorlib.dll 中)

 

StackTrace st = new StackTrace(true);
StackFrame[] sfArray = st.GetFrames();
StringBuilder sbStackTrace = new StringBuilder();
foreach (StackFrame sf in sfArray)
{
  if (!string.IsNullOrEmpty(sf.GetMethod().ReflectedType.FullName))
  {
    sbStackTrace.Append("at:" + sf.GetMethod().ReflectedType.FullName);
  }
  if (!string.IsNullOrEmpty(sf.GetMethod().ToString()))
  {
    sbStackTrace.Append("method:" + sf.GetMethod().ToString());
  }
  if (!string.IsNullOrEmpty(sf.GetFileName()))
  {
    sbStackTrace.Append("in:" + sf.GetFileName().ToString());
  }
  if (sf.GetFileLineNumber() > 0)
  {
    sbStackTrace.Append("line:" + sf.GetFileLineNumber());
  }
}



posted on 2011-12-15 14:46  debugdotnet  阅读(537)  评论(0编辑  收藏  举报

导航