共用方式為


方法 ETW 事件

這些事件會收集方法特有的資訊。 這些事件的承載是符號解析所需的。 此外,這些事件會提供有用的資訊,例如呼叫方法的次數。

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

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

CLR 方法事件可進一步細分為下列事件:

  • CLR 方法事件

  • CLR 方法標記事件

  • CLR 方法詳細資訊事件

  • MethodJittingStarted 事件

CLR 方法事件

下表顯示關鍵字和層級。 (如需詳細資訊,請參閱 CLR ETW 關鍵字和層級。)

引發事件的關鍵字

層級

JITKeyword (0x10) 執行階段提供者

告知性 (4)

NGenKeyword (0x20) 執行階段提供者

告知性 (4)

JitRundownKeyword (0x10) 取消提供者

告知性 (4)

NGENRundownKeyword (0x20) 取消提供者

告知性 (4)

下表顯示事件資訊。

事件

事件識別碼

說明

MethodLoad_V1

136

當以 Just-In-Time 載入 (JIT 載入) 方法或載入 NGEN 映像時引發。 動態和泛型方法不會使用這個版本進行方法載入。 JIT Helper 絕對不會使用這個版本。

MethodUnLoad_V1

137

當卸載模組或終結應用程式定義域時引發。 動態方法絕對不會使用這個版本進行方法卸載。

MethodDCStart_V1

137

在開始取消期間列舉方法。

MethodDCEnd_V1

138

在結束取消期間列舉方法。

下表顯示事件資料。

欄位名稱

資料型別

說明

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

CLR 或 CoreCLR 執行個體的唯一 ID。

回到頁首

CLR 方法標記事件

這些事件只會在取消提供者底下引發。 它們代表開始或結束取消期間方法列舉的結尾 (也就是說,它們會在啟用 NGENRundownKeyword、JitRundownKeyword、LoaderRundownKeyword 或 AppDomainResourceManagementRundownKeyword 關鍵字時引發)。

下表顯示關鍵字和層級。

引發事件的關鍵字

層級

AppDomainResourceManagementRundownKeyword (0x800) 取消提供者

告知性 (4)

JitRundownKeyword (0x10) 取消提供者

告知性 (4)

NGENRundownKeyword (0x20) 取消提供者

告知性 (4)

下表顯示事件資訊。

事件

事件識別碼

說明

DCStartInit_V1

147

在開始取消期間的列舉開始之前傳送。

DCStartComplete_V1

147

在開始取消期間的列舉結束時傳送。

DCEndInit_V1

145

在結束取消期間的列舉開始之前傳送。

DCEndComplete_V1

148

在結束取消期間的列舉結束時傳送。

下表顯示事件資料。

欄位名稱

資料型別

說明

ClrInstanceID

win:UInt16

CLR 或 CoreCLR 執行個體的唯一 ID。

回到頁首

CLR 方法詳細資訊事件

下表顯示關鍵字和層級。

引發事件的關鍵字

層級

JITKeyword (0x10) 執行階段提供者

詳細資訊 (5)

NGenKeyword (0x20) 執行階段提供者

詳細資訊 (5)

JitRundownKeyword (0x10) 取消提供者

詳細資訊 (5)

NGENRundownKeyword (0x20) 取消提供者

詳細資訊 (5)

下表顯示事件資訊。

事件

事件識別碼

說明

MethodLoadVerbose_V1

143

當以 JIT 方式載入方法或載入 NGEN 映像時引發。 動態和泛型方法一定會使用這個版本進行方法載入。 JIT Helper 一定會使用這個版本。

MethodUnLoadVerbose_V1

144

當終結動態方法、卸載模組,或終結應用程式定義域時引發。 動態方法一定會使用這個版本進行方法卸載。

MethodDCStartVerbose_V1

141

在開始取消期間列舉方法。

MethodDCEndVerbose_V1

142

在結束取消期間列舉方法。

下表顯示事件資料。

欄位名稱

資料型別

說明

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

CLR 或 CoreCLR 執行個體的唯一 ID。

回到頁首

MethodJittingStarted 事件

下表顯示關鍵字和層級。

引發事件的關鍵字

層級

JITKeyword (0x10) 執行階段提供者

詳細資訊 (5)

NGenKeyword (0x20) 執行階段提供者

詳細資訊 (5)

JitRundownKeyword (0x10) 取消提供者

詳細資訊 (5)

NGENRundownKeyword (0x20) 取消提供者

詳細資訊 (5)

下表顯示事件資訊。

事件

事件識別碼

說明

MethodJittingStarted

145

對方法進行 JIT 編譯時引發。

下表顯示事件資料。

欄位名稱

資料型別

描述

MethodID

win:UInt64

方法的唯一識別項。

ModuleID

win:UInt64

這個方法所屬之模組的識別項。

MethodToken

win:UInt32

0 代表動態方法和 JIT Helper。

MethodILSize

win:UInt32

正在進行 JIT 編譯之方法的 Microsoft Intermediate Language (MSIL) 大小。

MethodNameSpace

win:UnicodeString

與方法相關聯的完整類別名稱。

MethodName

win:UnicodeString

方法的名稱。

MethodSignature

win:UnicodeString

方法的簽章 (以逗號分隔的型別名稱清單)。

ClrInstanceID

win:UInt16

CLR 或 CoreCLR 執行個體的唯一 ID。

回到頁首

請參閱

概念

CLR ETW 事件