StackTrace和StackFrame使用筆記

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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章