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_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_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST = 0x40000000,
    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;

成员

成员

说明

COR_PRF_MONITOR_NONE

不设置任何标志。

COR_PRF_MONITOR_FUNCTION_UNLOADS

控制 FunctionUnloadStarted 回调。

COR_PRF_MONITOR_CLASS_LOADS

控制 ClassLoadClassUnload 回调。

注意注意
此标志的行为在 .NET Framework 2.0 版中发生了变化。

COR_PRF_MONITOR_MODULE_LOADS

控制 ModuleLoadModuleUnloadModuleAttachedToAssembly 回调。

COR_PRF_MONITOR_ASSEMBLY_LOADS

控制 AssemblyLoadAssemblyUnload 回调。

COR_PRF_MONITOR_APPDOMAIN_LOADS

控制 AppDomainCreationAppDomainShutdown 回调。

COR_PRF_MONITOR_JIT_COMPILATION

控制 JITCompilationJITFunctionPitchedJITInlining 回调。

COR_PRF_MONITOR_EXCEPTIONS

控制 ExceptionThrownExceptionSearchExceptionOSHandlerExceptionUnwindExceptionCatcher 回调。

COR_PRF_MONITOR_GC

控制 GarbageCollectionStartedGarbageCollectionFinishedMovedReferencesSurvivingReferencesObjectReferencesObjectsAllocatedByClassRootReferencesHandleCreatedHandleDestroyedFinalizeableObjectQueued 回调。

COR_PRF_MONITOR_OBJECT_ALLOCATED

控制 ObjectAllocated 回调。

COR_PRF_MONITOR_THREADS

控制 ThreadCreatedThreadDestroyedThreadAssignedToOSThreadThreadNameChanged 回调。

COR_PRF_MONITOR_REMOTING

控制 Remoting 回调。

COR_PRF_MONITOR_CODE_TRANSITIONS

控制 UnmanagedToManagedTransitionManagedToUnmanagedTransition 回调。

COR_PRF_MONITOR_ENTERLEAVE

控制 FunctionEnterFunctionLeaveFunctionTailcall 回调。

COR_PRF_MONITOR_CCW

控制 COMClassicVTable 回调。

COR_PRF_MONITOR_REMOTING_COOKIE

控制是否向 Remoting 回调传递 Cookie

COR_PRF_MONITOR_REMOTING_ASYNC

控制 Remoting 回调是否将监视异步事件

COR_PRF_MONITOR_SUSPENDS

控制 RuntimeSuspendRuntimeResumeRuntimeThreadSuspendedRuntimeThreadResumed 回调。

COR_PRF_MONITOR_CACHE_SEARCHES

控制 JITCachedFunctionSearch 回调。

注意注意
此标志的行为在 .NET Framework 2.0 版中发生了变化。

COR_PRF_MONITOR_CLR_EXCEPTIONS

控制 ExceptionCLRCatcher 回调。

COR_PRF_MONITOR_ALL

启用所有回调事件。

COR_PRF_ENABLE_REJIT

已弃用。

不支持 ReJIT。 此标志无效。

COR_PRF_ENABLE_INPROC_DEBUGGING

已弃用。

不支持进程内调试。 此标志无效。

COR_PRF_ENABLE_JIT_MAPS

已弃用。

使探查器能够使用 ICorProfilerInfo::GetILToNativeMapping 获取从 MSIL 到本机代码的映射。 在 .NET Framework 2.0 版中,运行时始终跟踪从 MSIL 到本机代码的映射;因此,始终认为要设置此标志。

COR_PRF_DISABLE_INLINING

禁用所有内联。

COR_PRF_DISABLE_OPTIMIZATIONS

禁用所有代码优化。

COR_PRF_ENABLE_OBJECT_ALLOCATED

向运行时指示:探查器可能需要对象分配通知。 如果探查器需要带有 COR_PRF_MONITOR_OBJECT_ALLOCATED 的通知,则必须在初始化过程中进行此项设置。

COR_PRF_ENABLE_FUNCTION_ARGS

通过 FunctionEnter2 启用参数跟踪。

COR_PRF_ENABLE_FUNCTION_RETVAL

通过 FunctionLeave2 启用返回值的跟踪。

COR_PRF_ENABLE_FRAME_INFO

允许将对 GetFunctionInfo2 的调用与通过调用 FunctionEnter2FunctionLeave2FunctionTailcall2 所返回的 COR_PRF_FRAME_INFO 结构一起使用,从而检索泛型函数的确切 ClassID。

COR_PRF_ENABLE_STACK_SNAPSHOT

允许调用 DoStackSnapshot

COR_PRF_USE_PROFILE_IMAGES

导致执行本机映像搜索,以查找增强型探查器映像。 对于给定程序集,如果找不到增强型探查器映像,则公共语言运行时回退到该程序集的 JIT。

COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUSt

禁用正常情况下在实时 (JIT) 编译和完全信任程序集类加载过程中完成的安全透明度检查。 这可以使某些检测更容易执行。

COR_PRF_ALL

有效标志值的掩码。

COR_PRF_MONITOR_IMMUTABLE

表示只能在初始化过程中设置的所有标志。 如果在初始化后尝试更改这些标志中的任何一个标志,则会返回一个指示失败的 HRESULT 值。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**CorProf.idl、CorProf.h

**库:**CorGuids.lib

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

请参见

其他资源

分析枚举