StackTrace
表示一个堆栈跟踪,它是一个或多个堆栈帧的有序集合。
StackFrame
提供关于 StackFrame(表示当前线程的调用堆栈中的一个函数调用)的信息。
作用
他们常用来追踪错误。
实例:
using System.Diagnostics;
StackTrace st = new StackTrace(true);
for(int i =0; i< st.FrameCount; i++ )
{
StackFrame sf = st.GetFrame(i);
Console.WriteLine();
Console.WriteLine(stackIndent + " Method: {0}",
sf.GetMethod() );
Console.WriteLine( stackIndent + " File: {0}",
sf.GetFileName());
Console.WriteLine( stackIndent + " Line Number: {0}",
sf.GetFileLineNumber());
stackIndent += " ";
}
常用函数
GetFrame(Int32)
获取指定的堆栈帧。
StackFrame sf = st.GetFrame(i);
GetFileName()
获取出错部分的程序所在的文件。
string loc = sf.GetFileName()
GetFileLineNumber()
获取出错部分的程序所在的文件的行数。
int line = sf.GetFileLineNumber();
GetMethod()
获取出错的程序。
string m = sf.GetMethod().ToString();
链接
StackTrace 类 (System.Diagnostics)
StackFrame 类 (System.Diagnostics)