.NET 運行時間方法事件

本文所述的事件會收集方法特有的資訊。 若要進行符號解析,需使用這些事件的承載。 此外,這些事件會提供有用的資訊,例如載入和卸除的方法。 如需如何針對診斷目的使用這些事件的詳細資訊,請參閱 記錄和追蹤 .NET 應用程式

所有方法事件都具「告知性 (4)」的層級。 所有方法的詳細資訊事件都具「詳細資訊 (5)」的層級。

所有方法事件都是由執行階段提供者下的 JITKeyword (0x10) 關鍵字或 NGenKeyword (0x20) 關鍵字,或由取消提供者下的 JitRundownKeyword (0x10) 或 NGENRundownKeyword (0x20) 所引發。

這些事件的 V2 版本包括 ReJITID,V1 版本不會。

MethodLoad_V1 事件

下表說明事件資訊:

活動 事件識別碼 描述
MethodLoad_V1 141 在 Just-In-Time 載入 (JIT 載入) 方法或 NGEN 映像載入時引發。 動態和泛型的方法並不會使用這個版本的方法載入。 JIT Helper 永遠不會使用這個版本。
引發事件的關鍵字 層級
JITKeyword (0x10) 執行階段提供者 告知性 (4)
NGenKeyword (0x20) 執行階段提供者 告知性 (4)
欄位名稱 資料類型 描述
MethodID win:UInt64 方法的唯一識別碼。 若是 JIT Helper 方法,其設為方法的起始位址。
ModuleID win:UInt64 這個方法所屬之模組的識別碼 (0 代表 JIT Helper)。
MethodStartAddress win:UInt64 方法的起始位址。
MethodSize win:UInt32 方法的大小。
MethodToken win:UInt32 0 代表動態方法和 JIT Helper。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

0x4:JIT 編譯的程式碼方法 (否則為 NGEN 原生映像程式碼)。

0x8:Helper 方法。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodLoad_V2事件

活動 事件識別碼 描述
MethodLoad_V2 141 在 Just-In-Time 載入 (JIT 載入) 方法或 NGEN 映像載入時引發。 動態和泛型的方法並不會使用這個版本的方法載入。 JIT Helper 永遠不會使用這個版本。
引發事件的關鍵字 層級
JITKeyword (0x10) 執行階段提供者 告知性 (4)
NGenKeyword (0x20) 執行階段提供者 告知性 (4)
欄位名稱 資料類型 描述
MethodID win:UInt64 方法的唯一識別碼。 若是 JIT Helper 方法,其設為方法的起始位址。
ModuleID win:UInt64 這個方法所屬之模組的識別碼 (0 代表 JIT Helper)。
MethodStartAddress win:UInt64 方法的起始位址。
MethodSize win:UInt32 方法的大小。
MethodToken win:UInt32 0 代表動態方法和 JIT Helper。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

0x4:JIT 編譯的程式碼方法 (否則為 NGEN 原生映像程式碼)。

0x8:Helper 方法。
ReJITID win:UInt64 方法的 ReJIT 識別碼。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodUnLoad_V1 事件

活動 事件識別碼 描述
MethodUnLoad_V1 142 在模組已卸載或應用程式定義域損毀時引發。 動態方法永遠不會使用這個版本的方法卸載。
引發事件的關鍵字 層級
JITKeyword (0x10) 告知性 (4)
NGenKeyword (0x20) 告知性 (4)
欄位名稱 資料類型 描述
MethodID win:UInt64 方法的唯一識別碼。 若是 JIT Helper 方法,其設為方法的起始位址。
ModuleID win:UInt64 這個方法所屬之模組的識別碼 (0 代表 JIT Helper)。
MethodStartAddress win:UInt64 方法的起始位址。
MethodSize win:UInt32 方法的大小。
MethodToken win:UInt32 0 代表動態方法和 JIT Helper。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

0x4:JIT 編譯的程式碼方法 (否則為 NGEN 原生映像程式碼)。

0x8:Helper 方法。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodUnLoad_V2 事件

活動 事件識別碼 描述
MethodUnLoad_V2 142 在模組已卸載或應用程式定義域損毀時引發。 動態方法永遠不會使用這個版本的方法卸載。
引發事件的關鍵字 層級
JITKeyword (0x10) 告知性 (4)
NGenKeyword (0x20) 告知性 (4)
欄位名稱 資料類型 描述
MethodID win:UInt64 方法的唯一識別碼。 若是 JIT Helper 方法,其設為方法的起始位址。
ModuleID win:UInt64 這個方法所屬之模組的識別碼 (0 代表 JIT Helper)。
MethodStartAddress win:UInt64 方法的起始位址。
MethodSize win:UInt32 方法的大小。
MethodToken win:UInt32 0 代表動態方法和 JIT Helper。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

0x4:JIT 編譯的程式碼方法 (否則為 NGEN 原生映像程式碼)。

0x8:Helper 方法。
ReJITID win:UInt64 方法的 ReJIT 識別碼。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

R2RGetEntryPoint 事件

活動 事件識別碼 描述
R2RGetEntryPoint 159 R2R 進入點查閱結束時引發。
引發事件的關鍵字 層級
CompilationDiagnosticKeyword (0x2000000000) 告知性 (4)
欄位名稱 資料類型 描述
MethodID win:UInt64 R2R 方法的唯一標識碼。
MethodNamespace win:UnicodeString 要查閱之方法的命名空間。
MethodName win:UnicodeString 要查閱之方法的名稱。
MethodSignature win:UnicodeString 方法的簽章 (以逗號分隔的類型名稱清單)。
EntryPoint win:UInt64 R2R 方法進入點的指標
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

R2RGetEntryPointStart 事件

活動 事件識別碼 描述
R2RGetEntryPointStart 160 R2R 進入點查閱開始時引發。
引發事件的關鍵字 層級
CompilationDiagnosticKeyword (0x2000000000) 告知性 (4)
欄位名稱 資料類型 描述
MethodID win:UInt64 R2R 方法的唯一標識碼。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodLoadVerbose_V1 事件

活動 事件識別碼 描述
MethodLoadVerbose_V1 143 在 JIT 載入方法或 NGEN 映像載入時引發。 動態和泛型的方法一律會使用這個版本的方法載入。 JIT Helper 一律會使用這個版本。
引發事件的關鍵字 層級
JITKeyword (0x10) 告知性 (4)
NGenKeyword (0x20) 告知性 (4)
欄位名稱 資料類型 描述
MethodID win:UInt64 方法的唯一識別項。 若是 JIT Helper 方法,其設為方法的起始位址。
ModuleID win:UInt64 這個方法所屬之模組的識別碼 (0 代表 JIT Helper)。
MethodStartAddress win:UInt64 起始位址:
MethodSize win:UInt32 方法的長度。
MethodToken win:UInt32 0 代表動態方法和 JIT Helper。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

0x4:JIT 編譯方法 (否則由 NGen.exe 產生)

0x8:Helper 方法。
MethodNameSpace win:UnicodeString 與方法相關聯的完整命名空間名稱。
MethodName win:UnicodeString 與方法相關聯的完整類別名稱。
MethodSignature win:UnicodeString 方法的簽章 (以逗號分隔的類型名稱清單)。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodLoadVerbose_V2 事件

活動 事件識別碼 描述
MethodLoadVerbose_V1 143 在 JIT 載入方法或 NGEN 映像載入時引發。 動態和泛型的方法一律會使用這個版本的方法載入。 JIT Helper 一律會使用這個版本。
引發事件的關鍵字 層級
JITKeyword (0x10) 告知性 (4)
NGenKeyword (0x20) 告知性 (4)
欄位名稱 資料類型 描述
MethodID win:UInt64 方法的唯一識別項。 若是 JIT Helper 方法,其設為方法的起始位址。
ModuleID win:UInt64 這個方法所屬之模組的識別碼 (0 代表 JIT Helper)。
MethodStartAddress win:UInt64 起始位址:
MethodSize win:UInt32 方法的長度。
MethodToken win:UInt32 0 代表動態方法和 JIT Helper。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

0x4:JIT 編譯方法 (否則由 NGen.exe 產生)

0x8:Helper 方法。
MethodNameSpace win:UnicodeString 與方法相關聯的完整命名空間名稱。
MethodName win:UnicodeString 與方法相關聯的完整類別名稱。
MethodSignature win:UnicodeString 方法的簽章 (以逗號分隔的類型名稱清單)。
ReJITID win:UInt64 方法的 ReJIT 識別碼。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodUnLoadVerbose_V1事件

活動 事件識別碼 描述
MethodUnLoadVerbose_V1 144 在動態方法損毀、模組已卸載或應用程式定義域損毀時引發。 動態方法永遠一律會使用這個版本的方法卸載。
引發事件的關鍵字 層級
JITKeyword (0x10) 告知性 (4)
NGenKeyword (0x20) 告知性 (4)
欄位名稱 資料類型 描述
MethodID win:UInt64 方法的唯一識別項。 若是 JIT Helper 方法,其設為方法的起始位址。
ModuleID win:UInt64 這個方法所屬之模組的識別碼 (0 代表 JIT Helper)。
MethodStartAddress win:UInt64 起始位址:
MethodSize win:UInt32 方法的長度。
MethodToken win:UInt32 0 代表動態方法和 JIT Helper。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

0x4:JIT 編譯方法 (否則由 NGen.exe 產生)

0x8:Helper 方法。
MethodNameSpace win:UnicodeString 與方法相關聯的完整命名空間名稱。
MethodName win:UnicodeString 與方法相關聯的完整類別名稱。
MethodSignature win:UnicodeString 方法的簽章 (以逗號分隔的類型名稱清單)。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodUnLoadVerbose_V2 事件

活動 事件識別碼 描述
MethodUnLoadVerbose_V2 144 在動態方法損毀、模組已卸載或應用程式定義域損毀時引發。 動態方法永遠一律會使用這個版本的方法卸載。
引發事件的關鍵字 層級
JITKeyword (0x10) 告知性 (4)
NGenKeyword (0x20) 告知性 (4)
欄位名稱 資料類型 描述
MethodID win:UInt64 方法的唯一識別項。 若是 JIT Helper 方法,其設為方法的起始位址。
ModuleID win:UInt64 這個方法所屬之模組的識別碼 (0 代表 JIT Helper)。
MethodStartAddress win:UInt64 起始位址:
MethodSize win:UInt32 方法的長度。
MethodToken win:UInt32 0 代表動態方法和 JIT Helper。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

0x4:JIT 編譯方法 (否則由 NGen.exe 產生)

0x8:Helper 方法。
MethodNameSpace win:UnicodeString 與方法相關聯的完整命名空間名稱。
MethodName win:UnicodeString 與方法相關聯的完整類別名稱。
MethodSignature win:UnicodeString 方法的簽章 (以逗號分隔的類型名稱清單)。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。
ReJITID win:UInt64 方法的 ReJIT 識別碼。

MethodJittingStarted_V1事件

下表說明關鍵字和層級:

引發事件的關鍵字 層級
JITKeyword (0x10) 詳細資訊 (5)
NGenKeyword (0x20) 詳細資訊 (5)
活動 事件識別碼 描述
MethodJittingStarted_V1 145 當某個方法正在進行 JIT 編譯時引發。
欄位名稱 資料類型 描述
MethodID win:UInt64 方法的唯一識別項。
ModuleID win:UInt64 這個方法所屬之模組的識別碼。
MethodToken win:UInt32 0 代表動態方法和 JIT Helper。
MethodILSize win:UInt32 要編譯 JIT 之方法的 Common Intermediate Language (CIL) 大小。
MethodNameSpace win:UnicodeString 與方法相關聯的完整類別名稱。
MethodName win:UnicodeString 方法的名稱。
MethodSignature win:UnicodeString 方法的簽章 (以逗號分隔的類型名稱清單)。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodJitInliningSucceeded 事件

引發事件的關鍵字 層級
JITTracingKeyword (0x1000) 詳細資訊 (5)
活動 事件識別碼 描述
MethodJitInliningSucceeded 185 當 JIT 編譯程式成功內嵌方法時引發。
欄位名稱 資料類型 描述
MethodBeingCompiledNamespace win:UnicodeString 正在編譯之方法的命名空間。
MethodBeingCompiledName win:UnicodeString 正在編譯之方法的名稱。
MethodBeingCompiledNameSignature win:UnicodeString 正在編譯的方法簽章(型別名稱的逗號分隔清單)。
InlinerNamespace win:UnicodeString 內嵌器 (“parent”) 方法的命名空間。
InlinerName win:UnicodeString 內嵌器 (“parent”) 方法的名稱。
InlinerNameSignature win:UnicodeString 內嵌器 (“parent”) 方法的簽章(類型名稱的逗號分隔清單)。
InlineeNamespace win:UnicodeString inlinee (“child”) 方法的命名空間。
InlineeName win:UnicodeString 內嵌方法的名稱(“child”) 方法。
InlineeNameSignature win:UnicodeString 內嵌方法 (“child”) 方法的簽章(類型名稱的逗號分隔清單)。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodJitInliningFailed 事件

引發事件的關鍵字 層級
JITTracingKeyword (0x1000) 詳細資訊 (5)
活動 事件識別碼 描述
MethodJitInliningFailed 192 當 JIT 編譯程式無法內嵌方法時引發。
欄位名稱 資料類型 描述
MethodBeingCompiledNamespace win:UnicodeString 正在編譯之方法的命名空間。
MethodBeingCompiledName win:UnicodeString 正在編譯之方法的名稱。
MethodBeingCompiledNameSignature win:UnicodeString 正在編譯的方法簽章(型別名稱的逗號分隔清單)。
InlinerNamespace win:UnicodeString 內嵌器 (“parent”) 方法的命名空間。
InlinerName win:UnicodeString 內嵌器 (“parent”) 方法的名稱。
InlinerNameSignature win:UnicodeString 內嵌器 (“parent”) 方法的簽章(類型名稱的逗號分隔清單)。
InlineeNamespace win:UnicodeString inlinee (“child”) 方法的命名空間。
InlineeName win:UnicodeString 內嵌方法的名稱(“child”) 方法。
InlineeNameSignature win:UnicodeString 內嵌方法 (“child”) 方法的簽章(類型名稱的逗號分隔清單)。
FailAlways win:Boolean 方法是否標示為不可內嵌。
FailReason win:UnicodeString 內嵌原因失敗。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodJitTailCallSucceeded 事件

引發事件的關鍵字 層級
JITTracingKeyword (0x1000) 詳細資訊 (5)
活動 事件識別碼 描述
MethodJitTailCallSucceeded 192 當方法成功呼叫時,JIT 編譯程式就會引發。
欄位名稱 資料類型 描述
MethodBeingCompiledNamespace win:UnicodeString 正在編譯之方法的命名空間。
MethodBeingCompiledName win:UnicodeString 正在編譯之方法的名稱。
MethodBeingCompiledNameSignature win:UnicodeString 正在編譯的方法簽章(型別名稱的逗號分隔清單)。
CallerNamespace win:UnicodeString 呼叫端方法的命名空間。
CallerName win:UnicodeString 呼叫端方法的名稱。
CallerNameSignature win:UnicodeString 呼叫端方法的簽章(類型名稱的逗號分隔清單)。
CalleeNamespace win:UnicodeString 被呼叫端方法的命名空間。
CalleeName win:UnicodeString 被呼叫端方法的名稱。
CalleeNameSignature win:UnicodeString 被呼叫端方法的簽章(類型名稱的逗號分隔清單)。
TailPrefix win:Boolean 它是否為尾前置詞指令。
TailCallType win:UInt32 尾端呼叫的類型。

0:優化尾部呼叫 (epilog + jmp)

1:遞迴尾呼叫(方法 tail 呼叫本身)

2:協助程式輔助尾端呼叫
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodJitTailCallFailed 事件

引發事件的關鍵字 層級
JITTracingKeyword (0x1000) 詳細資訊 (5)
活動 事件識別碼 描述
MethodJitTailCallFailed 191 當呼叫方法失敗時,JIT 編譯程序引發。
欄位名稱 資料類型 描述
MethodBeingCompiledNamespace win:UnicodeString 正在編譯之方法的命名空間。
MethodBeingCompiledName win:UnicodeString 正在編譯之方法的名稱。
MethodBeingCompiledNameSignature win:UnicodeString 正在編譯的方法簽章(型別名稱的逗號分隔清單)。
CallerNamespace win:UnicodeString 呼叫端方法的命名空間。
CallerName win:UnicodeString 呼叫端方法的名稱。
CallerNameSignature win:UnicodeString 呼叫端方法的簽章(類型名稱的逗號分隔清單)。
CalleeNamespace win:UnicodeString 被呼叫端方法的命名空間。
CalleeName win:UnicodeString 被呼叫端方法的名稱。
CalleeNameSignature win:UnicodeString 被呼叫端方法的簽章(類型名稱的逗號分隔清單)。
TailPrefix win:Boolean 它是否為尾前置詞指令。
FailReason win:UnicodeString 尾端呼叫失敗的原因。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodILToNativeMap 事件

引發事件的關鍵字 層級
JittedMethodILToNativeMapKeyword (0x20000) 詳細資訊 (5)
活動 事件識別碼 描述
MethodILToNativeMap 190 地圖 JIT 編譯方法的 IL 到原生對應事件。
欄位名稱 資料類型 描述
MethodID win:UInt64 方法的唯一識別碼。
ReJITID win:UInt64 方法的 ReJIT 識別碼。
MethodExtent win:UInt8 jitted 方法的範圍。
CountOfMapEntries win:UInt16 對應項目數目
ILOffsets win:UInt32 IL 位移。
NativeOffsets win:UInt32 機器碼位移。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。