COR_PRF_MONITOR Enumeration
Contains values that are used to specify behavior, capabilities, or events to which the profiler wishes to subscribe.
Syntax
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;
Members
The following sections list COR_PRF_MONITOR
enumeration members by category. The categories are:
No flags set
Member | Description |
---|---|
COR_PRF_MONITOR_NONE |
No flags are set. |
Callback flags
Member | Description |
---|---|
COR_PRF_MONITOR_ALL |
Enables all callback events. |
COR_PRF_MONITOR_APPDOMAIN_LOADS |
Controls the AppDomainCreation* and AppDomainShutdown* callbacks in the ICorProfilerCallback interface. |
COR_PRF_MONITOR_ASSEMBLY_LOADS |
Controls the AssemblyLoad* and AssemblyUnload* callbacks in the ICorProfilerCallback interface. |
COR_PRF_MONITOR_CACHE_SEARCHES |
Controls the JITCachedFunctionSearch* callbacks in the ICorProfilerCallback interface.The behavior of this flag is changed in .NET Framework version 2.0. |
COR_PRF_MONITOR_CCW |
Controls the COMClassicVTable* callbacks in the ICorProfilerCallback interface. |
COR_PRF_MONITOR_CLASS_LOADS |
Controls the ClassLoad* and ClassUnload* callbacks in the ICorProfilerCallback interface. |
COR_PRF_MONITOR_CLR_EXCEPTIONS |
Controls the ExceptionCLRCatcher* callbacks in the ICorProfilerCallback interface. |
COR_PRF_MONITOR_CODE_TRANSITIONS |
Controls the UnmanagedToManagedTransition and ManagedToUnmanagedTransition callbacks in the ICorProfilerCallback interface |
COR_PRF_MONITOR_ENTERLEAVE |
Controls the FunctionEnter* , FunctionLeave* , and FunctionTailCall* profiling global static functions. |
COR_PRF_MONITOR_EXCEPTIONS |
Controls the ExceptionThrown callback and the ExceptionSearch* , ExceptionOSHandler* , ExceptionUnwind* , and ExceptionCatcher* callbacks in the ICorProfilerCallback interface. |
COR_PRF_MONITOR_FUNCTION_UNLOADS |
Controls the FunctionUnloadStarted callback in the ICorProfilerCallback interface. |
COR_PRF_MONITOR_GC |
Controls the GarbageCollectionStarted, GarbageCollectionFinished, MovedReferences, MovedReferences2, SurvivingReferences, SurvivingReferences2, ObjectReferences, ObjectsAllocatedByClass, RootReferences, RootReferences2, HandleCreated, HandleDestroyed, and FinalizeableObjectQueued callbacks in the ICorProfilerCallback* interfaces. When COR_PRF_MONITOR_GC is allocated, concurrent garbage collection is turned off. |
COR_PRF_MONITOR_JIT_COMPILATION |
Controls the JITCompilation* , JITFunctionPitched, and JITInlining callbacks in the ICorProfilerCallback interface. |
COR_PRF_MONITOR_MODULE_LOADS |
Controls the ModuleLoad* , ModuleUnload* , and ModuleAttachedToAssembly callbacks in the ICorProfilerCallback interface. |
COR_PRF_MONITOR_OBJECT_ALLOCATED |
Controls the ObjectAllocated callback in the ICorProfilerCallback interface. |
COR_PRF_MONITOR_REMOTING |
Controls the Remoting* callbacks in the ICorProfilerCallback interface. |
COR_PRF_MONITOR_REMOTING_ASYNC |
Controls whether the Remoting* callbacks will monitor asynchronous events. |
COR_PRF_MONITOR_REMOTING_COOKIE |
Controls whether a cookie is passed to the Remoting* callbacks. |
COR_PRF_MONITOR_SUSPENDS |
Controls the RuntimeSuspend* , RuntimeResume* , RuntimeThreadSuspended, and RuntimeThreadResumed callbacks in the ICorProfilerCallback interface. |
COR_PRF_MONITOR_THREADS |
Controls the ThreadCreated, ThreadDestroyed, ThreadAssignedToOSThread, and ThreadNameChanged callbacks in the ICorProfilerCallback and ICorProfilerCallback2 interfaces. |
Feature-enabling flags
Member | Description |
---|---|
COR_PRF_ENABLE_FRAME_INFO |
Enables the retrieval of an exact ClassID for a generic function by calling the GetFunctionInfo2 method with a COR_PRF_FRAME_INFO value returned by the FunctionEnter2 callback. |
COR_PRF_ENABLE_FUNCTION_ARGS |
Enables argument tracing using the FunctionEnter2 callback or the FunctionEnter3WithInfo callback and the GetFunctionEnter3Info method. |
COR_PRF_ENABLE_FUNCTION_RETVAL |
Enables tracing of return values by using the FunctionLeave2 callback or the FunctionLeave3WithInfo callback and GetFunctionLeave3Info method. |
COR_PRF_ENABLE_INPROC_DEBUGGING |
Deprecated. In process debugging is not supported. This flag has no effect. |
COR_PRF_ENABLE_JIT_MAPS |
Deprecated. Allows the profiler to obtain IL-to-native maps by using GetILToNativeMapping. Starting with .NET Framework 2.0, the runtime always tracks IL-to-native maps; therefore, this flag is always considered to be set. |
COR_PRF_ENABLE_OBJECT_ALLOCATED |
Informs the runtime that the profiler may want object allocation notifications. This flag must be set during initialization. It allows the profiler to subsequently use the COR_PRF_MONITOR_OBJECT_ALLOCATED flag to receive ObjectAllocated callbacks. |
COR_PRF_ENABLE_REJIT |
Enables calls to the RequestReJIT and RequestRevert methods. The profiler must set this flag on startup. If the profiler specifies this flag, it must also specify COR_PRF_DISABLE_ALL_NGEN_IMAGES . |
COR_PRF_ENABLE_STACK_SNAPSHOT |
Enables calls to the DoStackSnapshot method. |
Configuration flags
Member | Description |
---|---|
COR_PRF_DISABLE_ALL_NGEN_IMAGES |
Prevents all native images (including profiler-enhanced images) from loading. If this flag and the COR_PRF_USE_PROFILE_IMAGES flag are both specified, COR_PRF_DISABLE_ALL_NGEN_IMAGES is used. |
COR_PRF_DISABLE_INLINING |
Disables all inlining. |
COR_PRF_DISABLE_OPTIMIZATIONS |
Disables all code optimizations. |
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST |
Disables security transparency checks that are normally done during just-in-time (JIT) compilation and class loading for full-trust assemblies. This can make some instrumentation easier to perform. |
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. If this flag and the COR_PRF_DISABLE_ALL_NGEN_IMAGES flag are both specified, COR_PRF_DISABLE_ALL_NGEN_IMAGES is used. |
Composite flags
Member | Description |
---|---|
COR_PRF_ALL |
Represents all COR_PRF_MONITOR flag values. |
COR_PRF_ALLOWABLE_AFTER_ATTACH |
Represents all COR_PRF_MONITOR flags that can be set after the profiler is attached to a running app. The syntax section indicates the individual flags that are present in this bitmask. |
COR_PRF_MONITOR_ALL |
Enables all callback events. |
COR_PRF_MONITOR_IMMUTABLE |
Represents all COR_PRF_MONITOR flags that can be set only during initialization. Trying to change any of these flags after initialization returns an HRESULT value that indicates failure. |
COR_PRF_REQUIRE_PROFILE_IMAGE |
Represents all COR_PRF_MONITOR flags that require profile-enhanced images. |
Remarks
A COR_PRF_MONITOR
value is used with the ICorProfilerInfo::GetEventMask and ICorProfilerInfo::SetEventMask methods to define the event notifications that the common language runtime makes to the profiler.
Requirements
Platforms: See System Requirements.
Header: CorProf.idl, CorProf.h
Library: CorGuids.lib
.NET Framework Versions: Available since 1.0
See also
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.