Comparteix a través de


COR_PRF_MONITOR (Enumeración)

Contiene valores que se usan para especificar el comportamiento, las funcionalidades o los eventos a los que el generador de perfiles quiere suscribirse.

Sintaxis

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;  

Miembros

En las secciones siguientes se enumeran los miembros de enumeración COR_PRF_MONITOR por categoría. Estas categorías son:

No se estableció ninguna marca

Miembro Descripción
COR_PRF_MONITOR_NONE No se establecen marcas.

Marcas de devolución de llamada

Miembro Descripción
COR_PRF_MONITOR_ALL Habilita todos los eventos de devolución de llamada.
COR_PRF_MONITOR_APPDOMAIN_LOADS Controla las devoluciones de llamada AppDomainCreation* y AppDomainShutdown* en la interfaz ICorProfilerCallback.
COR_PRF_MONITOR_ASSEMBLY_LOADS Controla las devoluciones de llamada AssemblyLoad* y AssemblyUnload* en la interfaz ICorProfilerCallback.
COR_PRF_MONITOR_CACHE_SEARCHES Controla las devoluciones de llamada JITCachedFunctionSearch* en la interfaz ICorProfilerCallback.

El comportamiento de esta marca se cambió en .NET Framework versión 2.0.
COR_PRF_MONITOR_CCW Controla las devoluciones de llamada COMClassicVTable* en la interfaz ICorProfilerCallback.
COR_PRF_MONITOR_CLASS_LOADS Controla las devoluciones de llamada ClassLoad* y ClassUnload* en la interfaz ICorProfilerCallback.
COR_PRF_MONITOR_CLR_EXCEPTIONS Controla las devoluciones de llamada ExceptionCLRCatcher* en la interfaz ICorProfilerCallback.
COR_PRF_MONITOR_CODE_TRANSITIONS Controla las devoluciones de llamada UnmanagedToManagedTransition y ManagedToUnmanagedTransition en la interfaz ICorProfilerCallback
COR_PRF_MONITOR_ENTERLEAVE Controla lasfunciones estáticas globales de generación de perfiles, FunctionEnter*, FunctionLeave* y FunctionTailCall*.
COR_PRF_MONITOR_EXCEPTIONS Controla la devolución de llamada ExceptionThrown y las devoluciones de llamada ExceptionSearch*, ExceptionOSHandler*, ExceptionUnwind* y ExceptionCatcher* en la interfaz ICorProfilerCallback.
COR_PRF_MONITOR_FUNCTION_UNLOADS Controla la devolución de llamada FunctionUnloadStarted en la interfaz ICorProfilerCallback.
COR_PRF_MONITOR_GC Controla las devoluciones de llamada GarbageCollectionStarted, GarbageCollectionFinished, MovedReferences, MovedReferences2, SurvivingReferences, SurvivingReferences2, ObjectReferences, ObjectsAllocatedByClass, RootReferences, RootReferences2, HandleCreated, HandleDestroyed y FinalizeableObjectQueued en las interfaces ICorProfilerCallback*. Cuando COR_PRF_MONITOR_GC se asigna, se desactiva la recolección de elementos no utilizados simultánea.
COR_PRF_MONITOR_JIT_COMPILATION Controla las devoluciones de llamada JITCompilation*, JITFunctionPitched y JITInlining en la interfaz ICorProfilerCallback.
COR_PRF_MONITOR_MODULE_LOADS Controla las devoluciones de llamada ModuleLoad*, ModuleUnload* y ModuleAttachedToAssembly en la interfaz ICorProfilerCallback.
COR_PRF_MONITOR_OBJECT_ALLOCATED Controla la devolución de llamada ObjectAllocated en la interfaz ICorProfilerCallback.
COR_PRF_MONITOR_REMOTING Controla las devoluciones de llamada Remoting* en la interfaz ICorProfilerCallback.
COR_PRF_MONITOR_REMOTING_ASYNC Controla si las devoluciones de llamada Remoting* supervisarán eventos asincrónicos.
COR_PRF_MONITOR_REMOTING_COOKIE Controla si se pasa una cookie a las devoluciones de llamada Remoting*.
COR_PRF_MONITOR_SUSPENDS Controla las devoluciones de llamada RuntimeSuspend*, RuntimeResume*, RuntimeThreadSuspended y RuntimeThreadResumed en la interfaz ICorProfilerCallback.
COR_PRF_MONITOR_THREADS Controla las devoluciones de llamada ThreadCreated, ThreadDestroyed, ThreadAssignedToOSThread y ThreadNameChanged en las interfaces ICorProfilerCallback e ICorProfilerCallback2.

Marcas para habilitar características

Miembro Descripción
COR_PRF_ENABLE_FRAME_INFO Habilita la recuperación de un ClassID exacto para una función genérica llamando al método GetFunctionInfo2 con un valor COR_PRF_FRAME_INFO devuelto por la devolución de llamada FunctionEnter2.
COR_PRF_ENABLE_FUNCTION_ARGS Habilita el seguimiento de argumentos usando las devoluciones de llamada FunctionEnter2 o FunctionEnter3WithInfo y el método GetFunctionEnter3Info.
COR_PRF_ENABLE_FUNCTION_RETVAL Permite realizar el seguimiento de valores devueltos usando las devoluciones de llamada FunctionLeave2 o FunctionLeave3WithInfo y el método GetFunctionLeave3Info.
COR_PRF_ENABLE_INPROC_DEBUGGING Desusado.

No se admite la depuración en proceso. Esta marca no tiene efecto.
COR_PRF_ENABLE_JIT_MAPS Desusado.

Permite al generador de perfiles obtener asignaciones de IL a nativo usando GetILToNativeMapping. A partir de .NET Framework 2.0, el tiempo de ejecución siempre realiza el seguimiento de las asignaciones de IL a nativo; por lo tanto, se considera que esta marca está siempre establecida.
COR_PRF_ENABLE_OBJECT_ALLOCATED Informa al tiempo de ejecución que puede que el generador de perfiles quiera notificaciones de asignación de objetos. Esta marca se debe establecer durante la inicialización. Permite al generador de perfiles seguir usando la marca COR_PRF_MONITOR_OBJECT_ALLOCATED para recibir devoluciones de llamada ObjectAllocated.
COR_PRF_ENABLE_REJIT Habilita las llamadas a los métodos RequestReJIT y RequestRevert. El generador de perfiles debe establecer esta marca en el inicio. Si el generador de perfiles especifica esta marca, también debe especificar COR_PRF_DISABLE_ALL_NGEN_IMAGES.
COR_PRF_ENABLE_STACK_SNAPSHOT Habilita las llamadas al método DoStackSnapshot.

Marcas de configuración

Miembro Descripción
COR_PRF_DISABLE_ALL_NGEN_IMAGES Impide que se carguen todas las imágenes nativas (incluidas imágenes mejoradas por el generador de perfiles). Si se especifican esta marca y la marca COR_PRF_USE_PROFILE_IMAGES, se usa COR_PRF_DISABLE_ALL_NGEN_IMAGES.
COR_PRF_DISABLE_INLINING Deshabilita todas las inserciones.
COR_PRF_DISABLE_OPTIMIZATIONS Deshabilita todas las optimizaciones de código.
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST Deshabilita las comprobaciones de transparencia de seguridad que normalmente se realizan durante la compilación Just-In-Time (JIT) y la carga de las clases para ensamblados de confianza total. Esto puede hacer que la instrumentación sea más fácil de realizar.
COR_PRF_USE_PROFILE_IMAGES Hace que la búsqueda de imágenes nativas busque imágenes mejoradas por el generador de perfiles. Si no se encuentra ninguna imagen mejorada por el generador de perfiles para un ensamblado determinado, Common Language Runtime vuelve a JIT para ese ensamblado. Si se especifican esta marca y la marca COR_PRF_DISABLE_ALL_NGEN_IMAGES, se usa COR_PRF_DISABLE_ALL_NGEN_IMAGES.

Marcas compuestas

Miembro Descripción
COR_PRF_ALL Representa todos los valores de la marca COR_PRF_MONITOR.
COR_PRF_ALLOWABLE_AFTER_ATTACH Representa todas las marcas COR_PRF_MONITOR que se pueden establecer después de que el generador de perfiles se asocie a una aplicación en ejecución. En la sección sobre la sintaxis se indica cada una de las marcas presentes en esta máscara de bits.
COR_PRF_MONITOR_ALL Habilita todos los eventos de devolución de llamada.
COR_PRF_MONITOR_IMMUTABLE Representa todas las marcas COR_PRF_MONITOR que se pueden establecer solo durante la inicialización. Al intentar cambiar cualquiera de estas marcas después de la inicialización se genera un valor HRESULT que indica error.
COR_PRF_REQUIRE_PROFILE_IMAGE Representa todas las marcas COR_PRF_MONITOR que requieren imágenes mejoradas para el perfil.

Comentarios

Se usa un valor COR_PRF_MONITOR con los métodos ICorProfilerInfo::GetEventMask y ICorProfilerInfo::SetEventMask para definir las notificaciones de eventos que Common Language Runtime envía al generador de perfiles.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: está disponible desde la versión 1.0

Consulte también