Перечисление COR_PRF_MONITOR
Содержит значения, используемые для указания поведения, возможностей или событий, на которые желает подписаться профилировщик.
Синтаксис
typedef enum {
COR_PRF_MONITOR_NONE = 0x00000000,
COR_PRF_MONITOR_FUNCTION_UNLOADS = 0x00000001,
COR_PRF_MONITOR_CLASS_LOADS = 0x00000002,
COR_PRF_MONITOR_MODULE_LOADS = 0x00000004,
COR_PRF_MONITOR_ASSEMBLY_LOADS = 0x00000008,
COR_PRF_MONITOR_APPDOMAIN_LOADS = 0x00000010,
COR_PRF_MONITOR_JIT_COMPILATION = 0x00000020,
COR_PRF_MONITOR_EXCEPTIONS = 0x00000040,
COR_PRF_MONITOR_GC = 0x00000080,
COR_PRF_MONITOR_OBJECT_ALLOCATED = 0x00000100,
COR_PRF_MONITOR_THREADS = 0x00000200,
COR_PRF_MONITOR_REMOTING = 0x00000400,
COR_PRF_MONITOR_CODE_TRANSITIONS = 0x00000800,
COR_PRF_MONITOR_ENTERLEAVE = 0x00001000,
COR_PRF_MONITOR_CCW = 0x00002000,
COR_PRF_MONITOR_REMOTING_COOKIE = 0x00004000 |
COR_PRF_MONITOR_REMOTING,
COR_PRF_MONITOR_REMOTING_ASYNC = 0x00008000 |
COR_PRF_MONITOR_REMOTING,
COR_PRF_MONITOR_SUSPENDS = 0x00010000,
COR_PRF_MONITOR_CACHE_SEARCHES = 0x00020000,
COR_PRF_ENABLE_REJIT = 0x00040000,
COR_PRF_ENABLE_INPROC_DEBUGGING = 0x00080000,
COR_PRF_ENABLE_JIT_MAPS = 0x00100000,
COR_PRF_DISABLE_INLINING = 0x00200000,
COR_PRF_DISABLE_OPTIMIZATIONS = 0x00400000,
COR_PRF_ENABLE_OBJECT_ALLOCATED = 0x00800000,
COR_PRF_MONITOR_CLR_EXCEPTIONS = 0x01000000,
COR_PRF_MONITOR_ALL = 0x0107FFFF,
COR_PRF_ENABLE_FUNCTION_ARGS = 0X02000000,
COR_PRF_ENABLE_FUNCTION_RETVAL = 0X04000000,
COR_PRF_ENABLE_FRAME_INFO = 0X08000000,
COR_PRF_ENABLE_STACK_SNAPSHOT = 0X10000000,
COR_PRF_USE_PROFILE_IMAGES = 0x20000000,
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST
= 0x40000000,
COR_PRF_DISABLE_ALL_NGEN_IMAGES = 0x80000000,
COR_PRF_ALL = 0x8FFFFFFF,
COR_PRF_REQUIRE_PROFILE_IMAGE = COR_PRF_USE_PROFILE_IMAGES |
COR_PRF_MONITOR_CODE_TRANSITIONS |
COR_PRF_MONITOR_ENTERLEAVE,
COR_PRF_ALLOWABLE_AFTER_ATTACH = COR_PRF_MONITOR_THREADS |
COR_PRF_MONITOR_MODULE_LOADS |
COR_PRF_MONITOR_ASSEMBLY_LOADS |
COR_PRF_MONITOR_APPDOMAIN_LOADS |
COR_PRF_ENABLE_STACK_SNAPSHOT |
COR_PRF_MONITOR_GC |
COR_PRF_MONITOR_SUSPENDS |
COR_PRF_MONITOR_CLASS_LOADS |
COR_PRF_MONITOR_JIT_COMPILATION,
COR_PRF_MONITOR_IMMUTABLE = COR_PRF_MONITOR_CODE_TRANSITIONS |
COR_PRF_MONITOR_REMOTING |
COR_PRF_MONITOR_REMOTING_COOKIE |
COR_PRF_MONITOR_REMOTING_ASYNC |
COR_PRF_ENABLE_REJIT |
COR_PRF_ENABLE_INPROC_DEBUGGING |
COR_PRF_ENABLE_JIT_MAPS |
COR_PRF_DISABLE_OPTIMIZATIONS |
COR_PRF_DISABLE_INLINING |
COR_PRF_ENABLE_OBJECT_ALLOCATED |
COR_PRF_ENABLE_FUNCTION_ARGS |
COR_PRF_ENABLE_FUNCTION_RETVAL |
COR_PRF_ENABLE_FRAME_INFO |
COR_PRF_USE_PROFILE_IMAGES |
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST |
COR_PRF_DISABLE_ALL_NGEN_IMAGES
} COR_PRF_MONITOR;
Члены
В следующих разделах перечислены COR_PRF_MONITOR
элементы перечисления по категориям. а именно следующему.
Флаги не заданы
Член | Описание |
---|---|
COR_PRF_MONITOR_NONE |
Флаги не установлены. |
Флаги обратного вызова
Член | Описание |
---|---|
COR_PRF_MONITOR_ALL |
Активирует все события обратного вызова. |
COR_PRF_MONITOR_APPDOMAIN_LOADS |
Управляет обратными AppDomainCreation* вызовами и AppDomainShutdown* в интерфейсе ICorProfilerCallback . |
COR_PRF_MONITOR_ASSEMBLY_LOADS |
Управляет обратными AssemblyLoad* вызовами и AssemblyUnload* в интерфейсе ICorProfilerCallback . |
COR_PRF_MONITOR_CACHE_SEARCHES |
Управляет обратными JITCachedFunctionSearch* вызовами в интерфейсе ICorProfilerCallback .Поведение этого флага изменено в платформа .NET Framework версии 2.0. |
COR_PRF_MONITOR_CCW |
Управляет обратными COMClassicVTable* вызовами в интерфейсе ICorProfilerCallback . |
COR_PRF_MONITOR_CLASS_LOADS |
Управляет обратными ClassLoad* вызовами и ClassUnload* в интерфейсе ICorProfilerCallback . |
COR_PRF_MONITOR_CLR_EXCEPTIONS |
Управляет обратными ExceptionCLRCatcher* вызовами в интерфейсе ICorProfilerCallback . |
COR_PRF_MONITOR_CODE_TRANSITIONS |
Управляет обратными вызовами UnmanagedToManagedTransition и ManagedToUnmanagedTransition в интерфейсе ICorProfilerCallback . |
COR_PRF_MONITOR_ENTERLEAVE |
Управляет глобальными статическими функциямиFunctionEnter* профилирования , FunctionLeave* и FunctionTailCall* . |
COR_PRF_MONITOR_EXCEPTIONS |
Управляет обратным вызовом ExceptionThrown и ExceptionSearch* обратными вызовами , ExceptionOSHandler* , ExceptionUnwind* и ExceptionCatcher* в интерфейсе ICorProfilerCallback . |
COR_PRF_MONITOR_FUNCTION_UNLOADS |
Управляет обратным вызовом FunctionUnloadStarted в интерфейсе ICorProfilerCallback . |
COR_PRF_MONITOR_GC |
Управляет обратными вызовами GarbageCollectionStarted, GarbageCollectionFinished, MovedReferences, MovedReferences2, SurvivingReferences, SurvivingReferences2, ObjectReferences, ObjectsAllocatedByClass, RootReferences, RootReferences2, HandleCreated, HandleDecreaed и FinalizeableObjectQueued в ICorProfilerCallback* интерфейсах. При COR_PRF_MONITOR_GC выделении параллельная сборка мусора отключается. |
COR_PRF_MONITOR_JIT_COMPILATION |
Управляет обратными JITCompilation* вызовами , JITFunctionPitched и JITInlining в интерфейсе ICorProfilerCallback . |
COR_PRF_MONITOR_MODULE_LOADS |
ModuleLoad* Управляет обратными вызовами , ModuleUnload* и ModuleAttachedToAssembly в интерфейсе ICorProfilerCallback. |
COR_PRF_MONITOR_OBJECT_ALLOCATED |
Управляет обратным вызовом ObjectAllocated в интерфейсе ICorProfilerCallback . |
COR_PRF_MONITOR_REMOTING |
Управляет обратными Remoting* вызовами в интерфейсе ICorProfilerCallback . |
COR_PRF_MONITOR_REMOTING_ASYNC |
Определяет, будут ли обратные вызовы Remoting* отслеживать асинхронные события. |
COR_PRF_MONITOR_REMOTING_COOKIE |
Определяет, будут ли передаваться файлы cookie для обратных вызовов Remoting* . |
COR_PRF_MONITOR_SUSPENDS |
Управляет обратными RuntimeSuspend* вызовами , RuntimeResume* , RuntimeThreadSuspended и RuntimeThreadResumed в интерфейсе ICorProfilerCallback. |
COR_PRF_MONITOR_THREADS |
Управляет обратными вызовами ThreadCreated, ThreadDecreaed, ThreadAssignedToOSThread и ThreadNameChanged в интерфейсах ICorProfilerCallback и ICorProfilerCallback2 . |
Флаги включения компонентов
Член | Описание |
---|---|
COR_PRF_ENABLE_FRAME_INFO |
Включает получение точного ClassID значения для универсальной функции путем вызова метода GetFunctionInfo2 со значением COR_PRF_FRAME_INFO , возвращаемым обратным вызовом FunctionEnter2 . |
COR_PRF_ENABLE_FUNCTION_ARGS |
Включает трассировку аргументов с помощью обратного вызова FunctionEnter2 или обратного вызова FunctionEnter3WithInfo и метода GetFunctionEnter3Info . |
COR_PRF_ENABLE_FUNCTION_RETVAL |
Включает трассировку возвращаемых значений с помощью обратного вызова FunctionLeave2 или обратного вызова FunctionLeave3WithInfo и метода GetFunctionLeave3Info . |
COR_PRF_ENABLE_INPROC_DEBUGGING |
Не рекомендуется. Отладка в процессе работы не поддерживается. Этот флаг ни на что не влияет. |
COR_PRF_ENABLE_JIT_MAPS |
Не рекомендуется. Позволяет профилировщику получать карты il-native с помощью GetILToNativeMapping. Начиная с платформа .NET Framework 2.0 среда выполнения всегда отслеживает сопоставления il-native, поэтому этот флаг всегда считается установленным. |
COR_PRF_ENABLE_OBJECT_ALLOCATED |
Сообщает среде выполнения о том, что профилировщик может захотеть получать уведомления о распределениях объекта. Этот флаг должен быть установлен во время инициализации. Это позволяет профилировщику впоследствии использовать COR_PRF_MONITOR_OBJECT_ALLOCATED флаг для получения обратных вызовов ObjectAllocated . |
COR_PRF_ENABLE_REJIT |
Включает вызовы методов RequestReJIT и RequestRevert . Профилировщик должен установить этот флаг при запуске. Если профилировщик указывает этот флаг, он также должен указать и COR_PRF_DISABLE_ALL_NGEN_IMAGES . |
COR_PRF_ENABLE_STACK_SNAPSHOT |
Включает вызовы метода DoStackSnapshot . |
Флаги конфигурации
Член | Описание |
---|---|
COR_PRF_DISABLE_ALL_NGEN_IMAGES |
Запрещает загрузку всех машинных образов (включая образы, улучшенные профилировщиком). Если этот флаг и флаг COR_PRF_USE_PROFILE_IMAGES указаны, используется COR_PRF_DISABLE_ALL_NGEN_IMAGES . |
COR_PRF_DISABLE_INLINING |
Отключает все встраивания. |
COR_PRF_DISABLE_OPTIMIZATIONS |
Отключает все оптимизации кода. |
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST |
Отключает проверки прозрачности безопасности, которые обычно производятся во время JIT-компиляции и загрузки классов для обеспечения полного доверия к сборкам. Это может облегчить выполнение некоторых инструментирований. |
COR_PRF_USE_PROFILE_IMAGES |
Вызывает поиск машинного образа для поиска образов, улучшенных профилировщиком. Если для данной сборки образов, улучшенных профилировщиком, не найдено, среда CLR возвращается к JIT для этой сборки. Если этот флаг и флаг COR_PRF_DISABLE_ALL_NGEN_IMAGES указаны, используется COR_PRF_DISABLE_ALL_NGEN_IMAGES . |
Составные флаги
Член | Описание |
---|---|
COR_PRF_ALL |
Представляет все значения флагов COR_PRF_MONITOR . |
COR_PRF_ALLOWABLE_AFTER_ATTACH |
Представляет все флаги COR_PRF_MONITOR , которые могут быть установлены после присоединения профилировщика к выполняющемуся приложению. В разделе "Синтаксис" указываются отдельные флаги, которые присутствуют в этой битовой маске. |
COR_PRF_MONITOR_ALL |
Активирует все события обратного вызова. |
COR_PRF_MONITOR_IMMUTABLE |
Представляет все флаги COR_PRF_MONITOR , которые могут быть установлены только во время инициализации. Попытка изменить какой-нибудь из этих флагов после инициализации вызовет значение HRESULT , указывающее на сбой. |
COR_PRF_REQUIRE_PROFILE_IMAGE |
Представляет все флаги COR_PRF_MONITOR , для которых необходимы улучшенные профилировщиком изображения. |
Комментарии
Значение COR_PRF_MONITOR
используется с методами ICorProfilerInfo::GetEventMask и ICorProfilerInfo::SetEventMask для определения уведомлений о событиях, которые среда CLR отправляет профилировщику.
Требования
Платформы: см. раздел Требования к системе.
Заголовок: CorProf.idl, CorProf.h
Библиотека: CorGuids.lib
версии платформа .NET Framework: доступно с версии 1.0.