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


Ключевые слова и уровни среды CLR (трассировка событий Windows)

События трассировки событий Windows можно отфильтровать по категории и уровню. Ключевые слова событий трассировки событий Windows в среде CLR обеспечивают фильтрацию событий по категории. Они используются в различных сочетаниях для поставщиков среды выполнения и очистки. Уровни событий определяются флагами.

Ключевые слова трассировки событий Windows в среде CLR

Ключевые слова служат флагами, которые можно объединять для формирования значений. На практике при использовании программ командной строки вместо имен ключевых слов применяются их шестнадцатеричные значения.

В следующих таблицах представлено описание ключевых слов:

Ключевые слова среды выполнения трассировки событий Windows в среде CLR

В таблице ниже приведены ключевые слова среды выполнения трассировки событий Windows среды CLR, их значения и предназначение.

Имя ключевого слова среды выполнения Значение Назначение
GCKeyword 0x00000001 Включает сбор событий сборки мусора.
LoaderKeyword 0x00000008 Включает сбор событий загрузчика.
JITKeyword 0x00000010 Включает сбор JIT-событий.
NGenKeyword 0x00000020 Включает сбор событий для методов образов в машинном коде (методы, обрабатываемые генератором образов в машинном коде (Ngen.exe)). Используется с ключевыми словами StartEnumerationKeyword и EndEnumerationKeyword. Использование этого ключевого слова связано с большими издержками. Оно формирует события для каждого метода внутри каждого загружаемого модуля NGen. По возможности вместо этого ключевого слова рекомендуется использовать базы данных программ (PDB), созданные с помощью средств профилирования, для получения сведений о методах из модулей NGen. См. также описание ключевого слова OverrideAndSuppressNGenEventsKeyword далее в этой таблице.
StartEnumerationKeyword 0x00000040 Включает перечисление всех методов во время выполнения; используется вместе с NGenKeyword.
EndEnumerationKeyword 0x00000080 Включает перечисление всех методов, уничтоженных во время выполнения; используется вместе с JITKeyword и NGenKeyword.
SecurityKeyword 0x00000400 Включает сбор событий безопасности.
AppDomainResourceManagementKeyword 0x00000800 Включает сбор событий отслеживания ресурсов на уровне домена приложения.
JITTracingKeyword 0x00001000 Включает сбор событий трассировки JIT-компилятора.
InteropKeyword 0x00002000 Включает сбор событий взаимодействия.
ContentionKeyword 0x00004000 Включает сбор событий состязания.
ExceptionKeyword 0x00008000 Включает сбор событий исключений.
ThreadingKeyword 0x00010000 Включает сбор событий пула потоков.
OverrideAndSuppressNGenEventsKeyword 0x00040000 (Доступно в платформа .NET Framework 4.5 и более поздних версиях.) Подавляет ключевое слово с высокой нагрузкой NGenKeyword и предотвращает создание событий для методов, которые находятся в модулях NGen. Начиная с платформа .NET Framework 4.5 средства профилирования должны использовать OverrideAndSuppressNGenEventsKeyword и NGenKeyword вместе для подавления создания событий для методов в модулях NGen. Это позволяет средству профилирования использовать более эффективные базы данных программы NGen для получения сведений о методах модулей NGen. Среда CLR в .NET Framework 4 и более ранних версиях не поддерживает создание баз данных программы NGen. В более ранних версиях среда CLR не распознает OverrideAndSuppressNGenEventsKeyword и обрабатывает NGenKeyword , создавая события для методов модулей NGen.
PerfTrackKeyWord 0x2000000 Включает сбор событий ModuleLoad и ModuleRange .
StackKeyword 0x40000000 Включает сбор событий трассировки стекасреды CLR.

Ключевые слова среды очистки трассировки событий Windows в среде CLR

В таблице ниже приведены ключевые слова среды очистки трассировки событий Windows среды CLR, их значения и предназначение.

Имя ключевого слова очистки Значение Назначение
LoaderRundownKeyword 0x00000008 Включает сбор событий загрузчика при использовании с ключевыми словами StartRundownKeyword и EndRundownKeyword.
JitRundownKeyword 0x00000010 Включает сбор событий DCStart и DCEnd методов (скомпилированных JIT-компилятором) при использовании с ключевыми словами StartRundownKeyword и EndRundownKeyword.
NGenRundownKeyword 0x00000020 Включает сбор событий DCStart и DCEnd для методов образов NGen в машинном коде при использовании с ключевыми словами StartRundownKeyword и EndRundownKeyword. Использование этого ключевого слова связано с большими издержками. Оно формирует события для каждого метода внутри каждого загружаемого модуля NGen. По возможности вместо этого ключевого слова рекомендуется использовать базы данных программ (PDB), созданные с помощью средств профилирования, для получения сведений о методах из модулей NGen. См. также описание ключевого слова OverrideAndSuppressNGenEventsRundownKeyword далее в этой таблице.
StartRundownKeyword 0x00000040 Включает перечисление состояния системы во время очистки запуска.
EndRundownKeyword 0x00000100 Включает перечисление состояния системы во время очистки завершения.
AppDomainResourceManagementRundownKeyword 0x00000800 Включает сбор событий для отслеживания ресурсов на уровне AppDomain при использовании с ключевыми словами StartRundownKeyword или EndRundownKeyword.
ThreadingKeyword 0x00010000 Включает сбор событий пула потоков.
OverrideAndSuppressNGenEventsRundownKeyword 0x00040000 (Доступно в платформа .NET Framework 4.5 и более поздних версиях.) Подавляет ключевое слово с высокой нагрузкой NGenRundownKeyword и предотвращает создание событий для методов, которые находятся в модулях NGen. Начиная с платформа .NET Framework 4.5 средства профилирования должны использовать OverrideAndSuppressNGenEventsRundownKeyword и NGenRundownKeyword вместе для подавления создания событий для методов в модулях NGen. Это позволяет средству профилирования использовать более эффективные базы данных программы NGen для получения сведений о методах модулей NGen. Среда CLR в .NET Framework 4 и более ранних версиях не поддерживает создание баз данных программы NGen. В более ранних версиях среда CLR не распознает OverrideAndSuppressNGenEventsRundownKeyword и обрабатывает NGenRundownKeyword , создавая события для методов модулей NGen.
PerfTrackKeyWord 0x2000000 Включает сбор событий ModuleDCStart, ModuleDCEnd, ModuleRangeDCStartи ModuleRangeDCEnd .

Сочетания ключевых слов для разрешения символов для поставщика среды выполнения

Ключевые слова и флаги События загрузки и выгрузки доменов приложений, сборок, модулей События загрузки и выгрузки методов (кроме динамических событий) События загрузки и уничтожения динамических методов
LoaderKeyword События загрузки и выгрузки. Нет. Нет.
JITKeyword

(+ StartEnumerationKeyword ничего не добавляет)
Нет. События загрузки. События загрузки и выгрузки.
JITKeyword +

EndEnumerationKeyword
Нет. События загрузки и выгрузки. События загрузки и выгрузки.
NGenKeyword Нет. Нет. Не применяется
NGenKeyword +

StartEnumerationKeyword
Нет. События загрузки. Не применяется
NGenKeyword +

EndEnumerationKeyword
Нет. События выгрузки. Не применяется

Сочетания ключевых слов для разрешения символов для поставщика очистки

Ключевые слова и флаги События DCStart и DCEnd для доменов приложений, сборок, модулей События DCStart и DCEnd методов (включая события динамических методов)
LoaderRundownKeyword +

StartRundownKeyword
СобытияDCStart . Нет.
LoaderRundownKeyword +

EndRundownKeyword
СобытияDCEnd . Нет.
JITKeyword +

StartRundownKeyword
Нет. СобытияDCStart .
JITKeyword +

EndRundownKeyword
Нет. СобытияDCEnd .
NGenKeyword +

StartRundownKeyword
Нет. СобытияDCStart .
NGenKeyword +

EndRundownKeyword
Нет. СобытияDCEnd .

Уровни событий трассировки событий Windows

События трассировки событий Windows также можно фильтровать по уровням. Если задан уровень 0x5, создаются события всех уровней, включая 0x5 и более низкие (события относятся к категориям, включенным с помощью ключевых слов). Если задан уровень 0x2, создаются только события, относящиеся к уровню 0x2 и более низким.

Уровни имеют следующие значения:

0x5 — Verbose (подробный);

0x4 — Informational (информационный);

0x3 — Warning (предупреждение);

0x2 — Error (ошибка);

0x1 — Critical (критический);

0x0 — LogAlways (регистрировать всегда).

См. также раздел