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


Перечисление 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.

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