方法 ETW 事件
這些事件會收集方法特有的資訊。 若要進行符號解析,需使用這些事件的承載。 此外,這些事件會提供實用資訊,例如呼叫方法的次數。
所有方法事件都具「告知性 (4)」的層級。 所有方法的詳細資訊事件都具「詳細資訊 (5)」的層級。
所有方法事件都是由執行階段提供者下的 JITKeyword
(0x10) 關鍵字或 NGenKeyword
(0x20) 關鍵字,或由取消提供者下的 JitRundownKeyword
(0x10) 或 NGENRundownKeyword
(0x20) 所引發。
方法事件
下表說明關鍵字和層級。 如需詳細資訊,請參閱 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 |
145 | 在啟動取消期間、列舉結尾時傳送。 |
DCEndInit_V1 |
148 | 在結束取消期間、開始列舉之前傳送。 |
DCEndComplete_V1 |
146 | 在結束取消期間、列舉結尾時傳送。 |
下表說明事件資料:
欄位名稱 | 資料類型 | 描述 |
---|---|---|
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 之方法的通用中繼語言 (CIL) 大小。 |
MethodNameSpace | win:UnicodeString | 與方法相關聯的完整類別名稱。 |
MethodName | win:UnicodeString | 方法的名稱。 |
MethodSignature | win:UnicodeString | 方法的簽章 (以逗號分隔的類型名稱清單)。 |
ClrInstanceID | win:UInt16 | CLR 或 CoreCLR 執行個體的唯一 ID。 |