Environment.StackTrace 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得目前的堆疊追蹤資訊。
public:
static property System::String ^ StackTrace { System::String ^ get(); };
public static string StackTrace { get; }
static member StackTrace : string
Public Shared ReadOnly Property StackTrace As String
屬性值
含有堆疊追蹤資訊的字串。 這個值可以是 Empty。
範例
下列範例示範 StackTrace 屬性。
// Sample for the Environment::StackTrace property
using namespace System;
int main()
{
Console::WriteLine();
Console::WriteLine( "StackTrace: ' {0}'", Environment::StackTrace );
}
/*
This example produces the following results:
StackTrace: ' at System::Environment::GetStackTrace(Exception e)
at System::Environment::GetStackTrace(Exception e)
at System::Environment::get_StackTrace()
at Sample::Main()'
*/
// Sample for the Environment.StackTrace property
using System;
class Sample
{
public static void Main()
{
Console.WriteLine();
Console.WriteLine("StackTrace: '{0}'", Environment.StackTrace);
}
}
/*
This example produces the following results:
StackTrace: ' at System.Environment.GetStackTrace(Exception e)
at System.Environment.GetStackTrace(Exception e)
at System.Environment.get_StackTrace()
at Sample.Main()'
*/
// Sample for the Environment.StackTrace property
open System
printfn $"\nStackTrace: '{Environment.StackTrace}'"
// This example produces the following results:
// StackTrace: ' at System.Environment.GetStackTrace(Exception e)
// at System.Environment.GetStackTrace(Exception e)
// at System.Environment.get_StackTrace()
// at <StartupCode$fs>.$Stacktrace.main@()'
' Sample for the Environment.StackTrace property
Class Sample
Public Shared Sub Main()
Console.WriteLine()
Console.WriteLine("StackTrace: '{0}'", Environment.StackTrace)
End Sub
End Class
'
'This example produces the following results:
'
'StackTrace: ' at System.Environment.GetStackTrace(Exception e)
' at System.Environment.GetStackTrace(Exception e)
' at System.Environment.get_StackTrace()
' at Sample.Main()'
'
備註
屬性 StackTrace 會以反向時間順序列出方法呼叫,也就是第一次描述最新的方法呼叫,而堆疊上每個方法呼叫都會列出一行堆疊追蹤資訊。 不過,由於優化期間發生的程式碼轉換, StackTrace 屬性可能不會如預期般回報許多方法呼叫。
注意
如需依類別排列堆疊追蹤資訊的階層式檢視,請使用 類別 StackTrace 。
屬性會 StackTrace 格式化每個方法呼叫的堆疊追蹤資訊,如下所示:
「at FullClassName
。 MethodName
MethodParams
在 :line LineNumber
中 () 」 FileName
常值 「at」 前面有三個空格,如果偵錯符號無法使用,則會省略開頭為 「in」 的整個子字串。 預留位置、 FullClassName
、 MethodName
、 MethodParams
、 FileName
和 LineNumber
會以實際值取代,並定義如下:
FullClassName
類別的完整名稱,包括 命名空間。
MethodName
方法的名稱。
MethodParams
參數類型/名稱組的清單。 每個配對都會以逗號 (「,」) 分隔。 如果沒有 MethodName
參數,則會省略這項資訊。
FileName
宣告方法的來源 MethodName
檔案名。 如果無法使用偵錯符號,則會省略這項資訊。
LineNumber
中 FileName
包含原始程式碼 MethodName
的行號,用於呼叫堆疊上的指令。 如果無法使用偵錯符號,則會省略這項資訊。
字串 Environment.NewLine 會終止堆疊追蹤的每一行。