方法 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。 |
回到頁首