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 |
控制 ClassLoad 和 ClassUnload 回调。
注意
此标志的行为在 .NET Framework 2.0 版中发生了变化。
|
COR_PRF_MONITOR_MODULE_LOADS |
控制 ModuleLoad、ModuleUnload 和 ModuleAttachedToAssembly 回调。 |
COR_PRF_MONITOR_ASSEMBLY_LOADS |
控制 AssemblyLoad 和 AssemblyUnload 回调。 |
COR_PRF_MONITOR_APPDOMAIN_LOADS |
控制 AppDomainCreation 和 AppDomainShutdown 回调。 |
COR_PRF_MONITOR_JIT_COMPILATION |
控制 JITCompilation、JITFunctionPitched 和 JITInlining 回调。 |
COR_PRF_MONITOR_EXCEPTIONS |
控制 ExceptionThrown、ExceptionSearch、ExceptionOSHandler、ExceptionUnwind 和 ExceptionCatcher 回调。 |
COR_PRF_MONITOR_GC |
控制 GarbageCollectionStarted、GarbageCollectionFinished、MovedReferences、SurvivingReferences、ObjectReferences、ObjectsAllocatedByClass、RootReferences、HandleCreated、HandleDestroyed 和 FinalizeableObjectQueued 回调。 |
COR_PRF_MONITOR_OBJECT_ALLOCATED |
控制 ObjectAllocated 回调。 |
COR_PRF_MONITOR_THREADS |
控制 ThreadCreated、ThreadDestroyed、ThreadAssignedToOSThread 和 ThreadNameChanged 回调。 |
COR_PRF_MONITOR_REMOTING |
控制 Remoting 回调。 |
COR_PRF_MONITOR_CODE_TRANSITIONS |
控制 UnmanagedToManagedTransition 和 ManagedToUnmanagedTransition 回调。 |
COR_PRF_MONITOR_ENTERLEAVE |
控制 FunctionEnter、FunctionLeave 和 FunctionTailcall 回调。 |
COR_PRF_MONITOR_CCW |
控制 COMClassicVTable 回调。 |
COR_PRF_MONITOR_REMOTING_COOKIE |
控制是否向 Remoting 回调传递 Cookie |
COR_PRF_MONITOR_REMOTING_ASYNC |
控制 Remoting 回调是否将监视异步事件 |
COR_PRF_MONITOR_SUSPENDS |
控制 RuntimeSuspend、RuntimeResume、RuntimeThreadSuspended 和 RuntimeThreadResumed 回调。 |
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 的调用与通过调用 FunctionEnter2、FunctionLeave2 或 FunctionTailcall2 所返回的 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