Поделиться через


События метода выполнения .NET

События, описанные в этой статье, собирают сведения, относящиеся к методам. Полезные данные этих событий необходимы для разрешения символов. Кроме того, эти события предоставляют полезные сведения, такие как методы, загруженные и выгруженные. Дополнительные сведения об использовании этих событий для диагностики см. в ведения журнала и трассировки приложений .NET.

Все события метода имеют уровень "Информационный (4)". Все подробные события метода имеют уровень "Подробные (5)".

Все события метода вызываются ключевым словом JITKeyword (0x10) или ключевым словом NGenKeyword (0x20) в поставщике среды выполнения или JitRundownKeyword (0x10) или NGENRundownKeyword (0x20) под поставщиком запуска.

Версии 2 этих событий включают ReJITID, версии 1 не выполняются.

событие MethodLoad_V1

В следующей таблице показаны сведения о событии:

Событие Идентификатор события Описание
MethodLoad_V1 141 Вызывается при загрузке метода jIT-загрузки или загрузки образа NGEN. Динамические и универсальные методы не используют эту версию для загрузки методов. Вспомогательные средства JIT никогда не используют эту версию.
Ключевое слово для вызова события Уровень
поставщик среды выполнения JITKeyword (0x10) Информационные (4)
поставщик среды выполнения NGenKeyword (0x20) Информационные (4)
Имя поля Тип данных Описание
MethodID win:UInt64 Уникальный идентификатор метода. Для вспомогательных методов JIT это значение имеет начальный адрес метода.
ModuleID win:UInt64 Идентификатор модуля, к которому принадлежит этот метод (0 для вспомогательных средств JIT).
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 Вызывается при загрузке метода jIT-загрузки или загрузки образа NGEN. Динамические и универсальные методы не используют эту версию для загрузки методов. Вспомогательные средства JIT никогда не используют эту версию.
Ключевое слово для вызова события Уровень
поставщик среды выполнения JITKeyword (0x10) Информационные (4)
поставщик среды выполнения NGenKeyword (0x20) Информационные (4)
Имя поля Тип данных Описание
MethodID win:UInt64 Уникальный идентификатор метода. Для вспомогательных методов JIT это значение имеет начальный адрес метода.
ModuleID win:UInt64 Идентификатор модуля, к которому принадлежит этот метод (0 для вспомогательных средств JIT).
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 Идентификатор модуля, к которому принадлежит этот метод (0 для вспомогательных средств JIT).
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 Идентификатор модуля, к которому принадлежит этот метод (0 для вспомогательных средств JIT).
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 Идентификатор модуля, к которому принадлежит этот метод (0 для вспомогательных средств JIT).
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 Идентификатор модуля, к которому принадлежит этот метод (0 для вспомогательных средств JIT).
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 Идентификатор модуля, к которому принадлежит этот метод (0 для вспомогательных средств JIT).
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 Идентификатор модуля, к которому принадлежит этот метод (0 для вспомогательных средств JIT).
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 Размер общей промежуточной версии языка (CIL) для метода, который выполняется JIT-компиляция.
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 Пространство имен метода inliner (parent).
InlinerName win:UnicodeString Имя метода inliner (parent).
InlinerNameSignature win:UnicodeString Сигнатура метода inliner (parent) (разделенный запятыми список имен типов).
InlineeNamespace win:UnicodeString Пространство имен встроенного (дочернего) метода.
InlineeName win:UnicodeString Имя встроенного (дочернего) метода.
InlineeNameSignature win:UnicodeString Сигнатура встроенного метода (дочерний) (разделенный запятыми список имен типов).
ClrInstanceID win:UInt16 Уникальный идентификатор для экземпляра CoreCLR.

Событие MethodJitInliningFailed

Ключевое слово для вызова события Уровень
JITTracingKeyword (0x1000) Подробные (5)
Событие Идентификатор события Описание
MethodJitInliningFailed 192 Вызывается, когда метод не был вложен компилятором JIT.
Имя поля Тип данных Описание
MethodBeingCompiledNamespace win:UnicodeString Пространство имен скомпилированного метода.
MethodBeingCompiledName win:UnicodeString Имя скомпилированного метода.
MethodBeingCompiledNameSignature win:UnicodeString Сигнатура метода (разделенный запятыми список имен типов) компилируется.
InlinerNamespace win:UnicodeString Пространство имен метода inliner (parent).
InlinerName win:UnicodeString Имя метода inliner (parent).
InlinerNameSignature win:UnicodeString Сигнатура метода inliner (parent) (разделенный запятыми список имен типов).
InlineeNamespace win:UnicodeString Пространство имен встроенного (дочернего) метода.
InlineeName win:UnicodeString Имя встроенного (дочернего) метода.
InlineeNameSignature win:UnicodeString Сигнатура встроенного метода (дочерний) (разделенный запятыми список имен типов).
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. Оптимизированный вызов хвоста (эпилог + jmp)

1. Рекурсивный вызов хвоста (сам метод вызывает хвост)

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 Сопоставляет событие сопоставления il-to-native для методов, скомпилированных JIT.
Имя поля Тип данных Описание
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.