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


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

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

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

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

Версии v2 этих событий включают ReJITID, а версии v1 — нет.

Событие MethodLoad_V1

В таблице ниже представлены сведения о событии.

Мероприятие Идентификатор события Description
MethodLoad_V1 141 Вызывается, когда метод является JIT-загружаемым или загружается образ NGEN. Динамические и универсальные методы не используют эту версию для загрузки методов. Вспомогательные методы JIT никогда не используют эту версию.
Ключевое слово для вызова события Уровень
JITKeyword (0x10) Информационный (4)
NGenKeyword (0x20) Информационный (4)
Имя поля Тип данных Description
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

Мероприятие Идентификатор события Description
MethodLoad_V2 141 Вызывается, когда метод является JIT-загружаемым или загружается образ NGEN. Динамические и универсальные методы не используют эту версию для загрузки методов. Вспомогательные методы JIT никогда не используют эту версию.
Ключевое слово для вызова события Уровень
JITKeyword (0x10) Информационный (4)
NGenKeyword (0x20) Информационный (4)
Имя поля Тип данных Description
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

Мероприятие Идентификатор события Description
MethodUnLoad_V1 142 Вызывается, когда выгружается модуль или уничтожается домен приложения. Динамические методы никогда не используют эту версию для выгрузки методов.
Ключевое слово для вызова события Уровень
JITKeyword (0x10) Информационный (4)
NGenKeyword (0x20) Информационный (4)
Имя поля Тип данных Description
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

Мероприятие Идентификатор события Description
MethodUnLoad_V2 142 Вызывается, когда выгружается модуль или уничтожается домен приложения. Динамические методы никогда не используют эту версию для выгрузки методов.
Ключевое слово для вызова события Уровень
JITKeyword (0x10) Информационный (4)
NGenKeyword (0x20) Информационный (4)
Имя поля Тип данных Description
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

Мероприятие Идентификатор события Description
R2RGetEntryPoint 159 Возникает при завершении поиска точки входа R2R.
Ключевое слово для вызова события Уровень
CompilationDiagnosticKeyword (0x2000000000) Информационный (4)
Имя поля Тип данных Description
MethodID win:UInt64 Уникальный идентификатор метода R2R.
MethodNamespace win:UnicodeString Пространство имен метода, поиск которого выполняется.
MethodName win:UnicodeString Имя метода, поиск которого выполняется.
MethodSignature win:UnicodeString Сигнатура метода (разделенный запятыми список имен типов).
EntryPoint win:UInt64 Указатель на точку входа метода R2R.
ClrInstanceID win:UInt16 Уникальный идентификатор для экземпляра CoreCLR.

Событие R2RGetEntryPointStart

Мероприятие Идентификатор события Description
R2RGetEntryPointStart 160 Возникает при начале поиска точки входа R2R.
Ключевое слово для вызова события Уровень
CompilationDiagnosticKeyword (0x2000000000) Информационный (4)
Имя поля Тип данных Description
MethodID win:UInt64 Уникальный идентификатор метода R2R.
ClrInstanceID win:UInt16 Уникальный идентификатор для экземпляра CoreCLR.

Событие MethodLoadVerbose_V1

Мероприятие Идентификатор события Description
MethodLoadVerbose_V1 143 Вызывается, когда метод является JIT-загружаемым или загружается образ NGEN. Динамические и универсальные методы всегда используют эту версию для загрузки методов. Вспомогательные методы JIT всегда используют эту версию.
Ключевое слово для вызова события Уровень
JITKeyword (0x10) Информационный (4)
NGenKeyword (0x20) Информационный (4)
Имя поля Тип данных Description
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

Мероприятие Идентификатор события Description
MethodLoadVerbose_V1 143 Вызывается, когда метод является JIT-загружаемым или загружается образ NGEN. Динамические и универсальные методы всегда используют эту версию для загрузки методов. Вспомогательные методы JIT всегда используют эту версию.
Ключевое слово для вызова события Уровень
JITKeyword (0x10) Информационный (4)
NGenKeyword (0x20) Информационный (4)
Имя поля Тип данных Description
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

Мероприятие Идентификатор события Description
MethodUnLoadVerbose_V1 144 Вызывается, когда уничтожается динамический метод, выгружается модуль или разрушается домен приложения. Динамические методы всегда используют эту версию для выгрузки методов.
Ключевое слово для вызова события Уровень
JITKeyword (0x10) Информационный (4)
NGenKeyword (0x20) Информационный (4)
Имя поля Тип данных Description
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

Мероприятие Идентификатор события Description
MethodUnLoadVerbose_V2 144 Вызывается, когда уничтожается динамический метод, выгружается модуль или разрушается домен приложения. Динамические методы всегда используют эту версию для выгрузки методов.
Ключевое слово для вызова события Уровень
JITKeyword (0x10) Информационный (4)
NGenKeyword (0x20) Информационный (4)
Имя поля Тип данных Description
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)
Мероприятие Идентификатор события Description
MethodJittingStarted_V1 145 Вызывается, когда метод компилируется JIT-компилятором.
Имя поля Тип данных Description
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)
Мероприятие Идентификатор события Description
MethodJitInliningSucceeded 185 Возникает, когда метод успешно встраивается компилятором JIT.
Имя поля Тип данных Description
MethodBeingCompiledNamespace win:UnicodeString Пространство имен компилируемого метода.
MethodBeingCompiledName win:UnicodeString Имя компилируемого метода.
MethodBeingCompiledNameSignature win:UnicodeString Сигнатура компилируемого метода (разделенный запятыми список имен типов).
InlinerNamespace win:UnicodeString Пространство имен встраивающего ("родительского") метода.
InlinerName win:UnicodeString Имя встраивающего ("родительского") метода.
InlinerNameSignature win:UnicodeString Сигнатура встраивающего ("родительского") метода (разделенный запятыми список имен типов).
InlineeNamespace win:UnicodeString Пространство имен встраиваемого ("дочернего") метода.
InlineeName win:UnicodeString Имя встраиваемого ("дочернего") метода.
InlineeNameSignature win:UnicodeString Сигнатура встраиваемого ("дочернего") метода (разделенный запятыми список имен типов).
ClrInstanceID win:UInt16 Уникальный идентификатор для экземпляра CoreCLR.

Событие MethodJitInliningFailed

Ключевое слово для вызова события Уровень
JITTracingKeyword (0x1000) Подробный (5)
Мероприятие Идентификатор события Description
MethodJitInliningFailed 192 Возникает, когда JIT-компилятору не удалось встроить метод.
Имя поля Тип данных Description
MethodBeingCompiledNamespace win:UnicodeString Пространство имен компилируемого метода.
MethodBeingCompiledName win:UnicodeString Имя компилируемого метода.
MethodBeingCompiledNameSignature win:UnicodeString Сигнатура компилируемого метода (разделенный запятыми список имен типов).
InlinerNamespace win:UnicodeString Пространство имен встраивающего ("родительского") метода.
InlinerName win:UnicodeString Имя встраивающего ("родительского") метода.
InlinerNameSignature win:UnicodeString Сигнатура встраивающего ("родительского") метода (разделенный запятыми список имен типов).
InlineeNamespace win:UnicodeString Пространство имен встраиваемого ("дочернего") метода.
InlineeName win:UnicodeString Имя встраиваемого ("дочернего") метода.
InlineeNameSignature win:UnicodeString Сигнатура встраиваемого ("дочернего") метода (разделенный запятыми список имен типов).
FailAlways win:Boolean Помечен ли метод как невстраиваемый.
FailReason win:UnicodeString Причина сбоя встраивания.
ClrInstanceID win:UInt16 Уникальный идентификатор для экземпляра CoreCLR.

Событие MethodJitTailCallSucceeded

Ключевое слово для вызова события Уровень
JITTracingKeyword (0x1000) Подробный (5)
Мероприятие Идентификатор события Description
MethodJitTailCallSucceeded 192 Создается JIT-компилятором, когда возможен успешный хвостовой вызов метода.
Имя поля Тип данных Description
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)
Мероприятие Идентификатор события Description
MethodJitTailCallFailed 191 Создается JIT-компилятором, когда не удалось выполнить хвостовой вызов метода.
Имя поля Тип данных Description
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)
Мероприятие Идентификатор события Description
MethodILToNativeMap 190 Сопоставляет событие сопоставления IL-машинного с JIT-скомпилированными методами.
Имя поля Тип данных Description
MethodID win:UInt64 Уникальный идентификатор метода.
ReJITID win:UInt64 Идентификатор ReJIT метода.
MethodExtent win:UInt8 Охват JIT-скомпилированного метода.
CountOfMapEntries win:UInt16 Число записей сопоставлений.
ILOffsets win:UInt32 Смещение IL.
NativeOffsets win:UInt32 Смещение машинного кода.
ClrInstanceID win:UInt16 Уникальный идентификатор для экземпляра CoreCLR.