共用方式為


.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 協助程序永遠不會使用此版本。
引發事件的關鍵詞 水準
JITKeyword (0x10) 執行時間提供者 資訊 (4)
NGenKeyword (0x20) 執行時間提供者 資訊 (4)
功能變數名稱 數據類型 描述
MethodID win:UInt64 方法的唯一標識碼。 針對 JIT 協助程式方法,這會設定為 方法的起始位址。
ModuleID win:UInt64 這個方法所屬模組的標識碼(JIT 協助程式為 0)。
MethodStartAddress win:UInt64 方法的起始位址。
MethodSize win:UInt32 方法的大小。
MethodToken win:UInt32 0 適用於動態方法和 JIT 協助程式。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

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

0x8:協助程式方法。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodLoad_V2事件

事件 事件標識碼 描述
MethodLoad_V2 141 當方法載入 Just-In-Time 時引發 (JIT 載入)或載入 NGEN 映射時。 動態和泛型方法不會將此版本用於方法載入。 JIT 協助程序永遠不會使用此版本。
引發事件的關鍵詞 水準
JITKeyword (0x10) 執行時間提供者 資訊 (4)
NGenKeyword (0x20) 執行時間提供者 資訊 (4)
功能變數名稱 數據類型 描述
MethodID win:UInt64 方法的唯一標識碼。 針對 JIT 協助程式方法,這會設定為 方法的起始位址。
ModuleID win:UInt64 這個方法所屬模組的標識碼(JIT 協助程式為 0)。
MethodStartAddress win:UInt64 方法的起始位址。
MethodSize win:UInt32 方法的大小。
MethodToken win:UInt32 0 適用於動態方法和 JIT 協助程式。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

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

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

MethodUnLoad_V1 事件

事件 事件標識碼 描述
MethodUnLoad_V1 142 卸除模組或終結應用程式域時引發。 動態方法永遠不會將此版本用於方法卸除。
引發事件的關鍵詞 水準
JITKeyword (0x10) 資訊 (4)
NGenKeyword (0x20) 資訊 (4)
功能變數名稱 數據類型 描述
MethodID win:UInt64 方法的唯一標識碼。 針對 JIT 協助程式方法,這會設定為 方法的起始位址。
ModuleID win:UInt64 這個方法所屬模組的標識碼(JIT 協助程式為 0)。
MethodStartAddress win:UInt64 方法的起始位址。
MethodSize win:UInt32 方法的大小。
MethodToken win:UInt32 0 適用於動態方法和 JIT 協助程式。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

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

0x8:協助程式方法。
ClrInstanceID win:UInt16 CoreCLR 實例的唯一標識符。

MethodUnLoad_V2 事件

事件 事件標識碼 描述
MethodUnLoad_V2 142 卸除模組或終結應用程式域時引發。 動態方法永遠不會將此版本用於方法卸除。
引發事件的關鍵詞 水準
JITKeyword (0x10) 資訊 (4)
NGenKeyword (0x20) 資訊 (4)
功能變數名稱 數據類型 描述
MethodID win:UInt64 方法的唯一標識碼。 針對 JIT 協助程式方法,這會設定為 方法的起始位址。
ModuleID win:UInt64 這個方法所屬模組的標識碼(JIT 協助程式為 0)。
MethodStartAddress win:UInt64 方法的起始位址。
MethodSize win:UInt32 方法的大小。
MethodToken win:UInt32 0 適用於動態方法和 JIT 協助程式。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

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

0x8:協助程式方法。
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 協助程式一律使用此版本。
引發事件的關鍵詞 水準
JITKeyword (0x10) 資訊 (4)
NGenKeyword (0x20) 資訊 (4)
功能變數名稱 數據類型 描述
MethodID win:UInt64 方法的唯一標識碼。 若為 JIT 協助程式方法,請將 設定為 方法的起始位址。
ModuleID win:UInt64 這個方法所屬模組的標識碼(JIT 協助程式為 0)。
MethodStartAddress win:UInt64 開始位址。
MethodSize win:UInt32 方法長度。
MethodToken win:UInt32 0 適用於動態方法和 JIT 協助程式。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

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

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

MethodLoadVerbose_V2 事件

事件 事件標識碼 描述
MethodLoadVerbose_V1 143 當方法載入 JIT 或載入 NGEN 映像時引發。 動態和泛型方法一律將此版本用於方法載入。 JIT 協助程式一律使用此版本。
引發事件的關鍵詞 水準
JITKeyword (0x10) 資訊 (4)
NGenKeyword (0x20) 資訊 (4)
功能變數名稱 數據類型 描述
MethodID win:UInt64 方法的唯一標識碼。 若為 JIT 協助程式方法,請將 設定為 方法的起始位址。
ModuleID win:UInt64 這個方法所屬模組的標識碼(JIT 協助程式為 0)。
MethodStartAddress win:UInt64 開始位址。
MethodSize win:UInt32 方法長度。
MethodToken win:UInt32 0 適用於動態方法和 JIT 協助程式。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

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

0x8:協助程式方法。
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 協助程式方法,請將 設定為 方法的起始位址。
ModuleID win:UInt64 這個方法所屬模組的標識碼(JIT 協助程式為 0)。
MethodStartAddress win:UInt64 開始位址。
MethodSize win:UInt32 方法長度。
MethodToken win:UInt32 0 適用於動態方法和 JIT 協助程式。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

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

0x8:協助程式方法。
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 協助程式方法,請將 設定為 方法的起始位址。
ModuleID win:UInt64 這個方法所屬模組的標識碼(JIT 協助程式為 0)。
MethodStartAddress win:UInt64 開始位址。
MethodSize win:UInt32 方法長度。
MethodToken win:UInt32 0 適用於動態方法和 JIT 協助程式。
MethodFlags win:UInt32 0x1:動態方法。

0x2:泛型方法。

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

0x8:協助程式方法。
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 協助程式。
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 實例的唯一標識符。