COR_PRF_MONITOR Enumeration

Contains values that are used to specify behavior, capabilities, or events to which the profiler wishes to subscribe.

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_MONITOR_CLR_EXCEPTIONS      = 0x01000000,
    COR_PRF_MONITOR_ALL                 = 0x0107FFFF,
    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_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_ALL                         = 0x3FFFFFFF,
    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_MONITOR_GC |
        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_ENABLE_STACK_SNAPSHOT |
        COR_PRF_USE_PROFILE_IMAGES
    
} COR_PRF_MONITOR;

Members

Member

Description

COR_PRF_MONITOR_NONE

No flags are set.

COR_PRF_MONITOR_FUNCTION_UNLOADS

Controls the FunctionUnloadStarted callback.

COR_PRF_MONITOR_CLASS_LOADS

Controls the ClassLoad and ClassUnload callbacks.

Note

The behavior of this flag is changed in the .NET Framework version 2.0.

COR_PRF_MONITOR_MODULE_LOADS

Controls the ModuleLoad, ModuleUnload, and ModuleAttachedToAssembly callbacks.

COR_PRF_MONITOR_ASSEMBLY_LOADS

Controls the AssemblyLoad and AssemblyUnload callbacks.

COR_PRF_MONITOR_APPDOMAIN_LOADS

Controls the AppDomainCreation and AppDomainShutdown callbacks.

COR_PRF_MONITOR_JIT_COMPILATION

Controls the JITCompilation, JITFunctionPitched, and JITInlining callbacks.

COR_PRF_MONITOR_EXCEPTIONS

Controls the ExceptionThrown, ExceptionSearch, ExceptionOSHandler, ExceptionUnwind, and ExceptionCatcher callbacks.

COR_PRF_MONITOR_GC

Controls the GarbageCollectionStarted, GarbageCollectionFinished, MovedReferences, SurvivingReferences, ObjectReferences, ObjectsAllocatedByClass, RootReferences, HandleCreated, HandleDestroyed, and FinalizeableObjectQueued callbacks.

COR_PRF_MONITOR_OBJECT_ALLOCATED

Controls the ObjectAllocated callback.

COR_PRF_MONITOR_THREADS

Controls the ThreadCreated, ThreadDestroyed, ThreadAssignedToOSThread, and ThreadNameChanged callbacks.

COR_PRF_MONITOR_REMOTING

Controls the Remoting callbacks.

COR_PRF_MONITOR_CODE_TRANSITIONS

Controls the UnmanagedToManagedTransition and ManagedToUnmanagedTransition callbacks.

COR_PRF_MONITOR_ENTERLEAVE

Controls the FunctionEnter, FunctionLeave, and FunctionTailcall callbacks.

COR_PRF_MONITOR_CCW

Controls COMClassicVTable callbacks.

COR_PRF_MONITOR_REMOTING_COOKIE

Controls whether a cookie is passed to Remoting callbacks

COR_PRF_MONITOR_REMOTING_ASYNC

Controls whether Remoting callbacks will monitor asynchronous events

COR_PRF_MONITOR_SUSPENDS

Controls the RuntimeSuspend, RuntimeResume, RuntimeThreadSuspended, and RuntimeThreadResumed callbacks.

COR_PRF_MONITOR_CACHE_SEARCHES

Controls JITCachedFunctionSearch callbacks.

Note

The behavior of this flag is changed in the .NET Framework version 2.0.

COR_PRF_MONITOR_CLR_EXCEPTIONS

Controls the ExceptionCLRCatcher callbacks.

COR_PRF_MONITOR_ALL

Enables all callback events.

COR_PRF_ENABLE_REJIT

Deprecated.

ReJIT is not supported. This flag has no effect.

COR_PRF_ENABLE_INPROC_DEBUGGING

Deprecated.

In process debugging is not supported. This flag has no effect.

COR_PRF_ENABLE_JIT_MAPS

Deprecated.

Enables the profiler to obtain MSIL-to-native maps by using ICorProfilerInfo::GetILToNativeMapping. In the .NET Framework version 2.0, the runtime always tracks MSIL-to-native maps; therefore, this flag is always considered to be set.

COR_PRF_DISABLE_INLINING

Disables all inlining.

COR_PRF_DISABLE_OPTIMIZATIONS

Disables all code optimizations.

COR_PRF_ENABLE_OBJECT_ALLOCATED

Indicates to the runtime that the profiler might want object allocation notifications. This must be set during initialization if the profiler wants notification with COR_PRF_MONITOR_OBJECT_ALLOCATED.

COR_PRF_ENABLE_FUNCTION_ARGS

Enables argument tracing using FunctionEnter2.

COR_PRF_ENABLE_FUNCTION_RETVAL

Enables tracing of return values using FunctionLeave2.

COR_PRF_ENABLE_FRAME_INFO

Enables the retrieval of an exact ClassID for a generic function, using a call to GetFunctionInfo2 with a COR_PRF_FRAME_INFO structure returned from a call to FunctionEnter2, FunctionLeave2, or FunctionTailcall2.

COR_PRF_ENABLE_STACK_SNAPSHOT

Enables calls to DoStackSnapshot.

COR_PRF_USE_PROFILE_IMAGES

Causes the native image search to look for profiler-enhanced images. If no profiler-enhanced image is found for a given assembly, the common language runtime falls back to JIT for that assembly.

COR_PRF_ALL

The mask for valid flag values.

COR_PRF_MONITOR_IMMUTABLE

Represents all flags that can be set only during initialization. Trying to change any of these flags after initialization returns an HRESULT value indicating failure.

Requirements

Platforms: See .NET Framework System Requirements.

Header: CorProf.idl

Library: CorGuids.lib

.NET Framework Versions: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

See Also

Other Resources

Profiling Enumerations