ערוך

שתף באמצעות


Method ETW Events

These events collect information that is specific to methods. The payload of these events is required for symbol resolution. In addition, these events provide helpful information such as the number of times a method was called.

All method events have a level of "Informational (4)". All method verbose events have a level of "Verbose (5)".

All method events are raised by the JITKeyword (0x10) keyword or the NGenKeyword (0x20) keyword under the runtime provider, or JitRundownKeyword (0x10) or NGENRundownKeyword (0x20) under the rundown provider.

CLR Method Events

The following table shows the keyword and level. For more information, see CLR ETW Keywords and Levels.

Keyword for raising the event Level
JITKeyword (0x10) runtime provider Informational (4)
NGenKeyword (0x20) runtime provider Informational (4)
JitRundownKeyword (0x10) rundown provider Informational (4)
NGENRundownKeyword (0x20) rundown provider Informational (4)

The following table shows the event information:

Event Event ID Description
MethodLoad_V1 136 Raised when a method is just-in-time loaded (JIT-loaded) or an NGEN image is loaded. Dynamic and generic methods do not use this version for method loads. JIT helpers never use this version.
MethodUnLoad_V1 137 Raised when a module is unloaded, or an application domain is destroyed. Dynamic methods never use this version for method unloads.
MethodDCStart_V1 137 Enumerates methods during a start rundown.
MethodDCEnd_V1 138 Enumerates methods during an end rundown.

The following table shows the event data:

Field name Data type Description
MethodID win:UInt64 Unique identifier of a method. For JIT helper methods, this is set to the start address of the method.
ModuleID win:UInt64 Identifier of the module to which this method belongs (0 for JIT helpers).
MethodStartAddress win:UInt64 Start address of the method.
MethodSize win:UInt32 Size of the method.
MethodToken win:UInt32 0 for dynamic methods and JIT helpers.
MethodFlags win:UInt32 0x1: Dynamic method.

0x2: Generic method.

0x4: JIT-compiled code method (otherwise NGEN native image code).

0x8: Helper method.
ClrInstanceID win:UInt16 Unique ID for the instance of CLR or CoreCLR.

CLR Method Marker Events

These events are raised only under the rundown provider. They signify the end of method enumeration during a start or end rundown. (That is, they are raised when the NGENRundownKeyword, JitRundownKeyword, LoaderRundownKeyword, or AppDomainResourceManagementRundownKeyword keyword is enabled.)

The following table shows the keyword and level:

Keyword for raising the event Level
AppDomainResourceManagementRundownKeyword (0x800) rundown provider Informational (4)
JitRundownKeyword (0x10) rundown provider Informational (4)
NGENRundownKeyword (0x20) rundown provider Informational (4)

The following table shows the event information:

Event Event ID Description
DCStartInit_V1 147 Sent before the start of the enumeration during a start rundown.
DCStartComplete_V1 145 Sent at the end of the enumeration during a start rundown.
DCEndInit_V1 148 Sent before the start of the enumeration during an end rundown.
DCEndComplete_V1 146 Sent at the end of the enumeration during an end rundown.

The following table shows the event data:

Field name Data type Description
ClrInstanceID win:UInt16 Unique ID for the instance of CLR or CoreCLR.

CLR Method Verbose Events

The following table shows the keyword and level:

Keyword for raising the event Level
JITKeyword (0x10) runtime provider Verbose (5)
NGenKeyword (0x20) runtime provider Verbose (5)
JitRundownKeyword (0x10) rundown provider Verbose (5)
NGENRundownKeyword (0x20) rundown provider Verbose (5)

The following table shows the event information:

Event Event ID Description
MethodLoadVerbose_V1 143 Raised when a method is JIT-loaded or an NGEN image is loaded. Dynamic and generic methods always use this version for method loads. JIT helpers always use this version.
MethodUnLoadVerbose_V1 144 Raised when a dynamic method is destroyed, a module is unloaded, or an application domain is destroyed. Dynamic methods always use this version for method unloads.
MethodDCStartVerbose_V1 141 Enumerates methods during a start rundown.
MethodDCEndVerbose_V1 142 Enumerates methods during an end rundown.

The following table shows the event data:

Field name Data type Description
MethodID win:UInt64 Unique identifier of the method. For JIT helper methods, set to the start address of the method.
ModuleID win:UInt64 Identifier of the module to which this method belongs (0 for JIT helpers).
MethodStartAddress win:UInt64 Start address.
MethodSize win:UInt32 Method length.
MethodToken win:UInt32 0 for dynamic methods and JIT helpers.
MethodFlags win:UInt32 0x1: Dynamic method.

0x2: Generic method.

0x4: JIT-compiled method (otherwise, generated by NGen.exe)

0x8: Helper method.
MethodNameSpace win:UnicodeString Full namespace name associated with the method.
MethodName win:UnicodeString Full class name associated with the method.
MethodSignature win:UnicodeString Signature of the method (comma-separated list of type names).
ClrInstanceID win:UInt16 Unique ID for the instance of CLR or CoreCLR.

MethodJittingStarted Event

The following table shows the keyword and level:

Keyword for raising the event Level
JITKeyword (0x10) runtime provider Verbose (5)
NGenKeyword (0x20) runtime provider Verbose (5)
JitRundownKeyword (0x10) rundown provider Verbose (5)
NGENRundownKeyword (0x20) rundown provider Verbose (5)

The following table shows the event information:

Event Event ID Description
MethodJittingStarted 145 Raised when a method is being JIT-compiled.

The following table shows the event data:

Field name Data type Description
MethodID win:UInt64 Unique identifier of the method.
ModuleID win:UInt64 Identifier of the module to which this method belongs.
MethodToken win:UInt32 0 for dynamic methods and JIT helpers.
MethodILSize win:UInt32 The size of the common intermediate language (CIL) for the method that is being JIT-compiled.
MethodNameSpace win:UnicodeString Full class name associated with the method.
MethodName win:UnicodeString Name of the method.
MethodSignature win:UnicodeString Signature of the method (comma-separated list of type names).
ClrInstanceID win:UInt16 Unique ID for the instance of CLR or CoreCLR.

See also