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 |
控制 Cookie 是否傳遞給 Remoting 回呼 |
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 |
以 FunctionEnter2、FunctionLeave2 或 FunctionTailcall2 的呼叫所傳回的 COR_PRF_FRAME_INFO 結構與 GetFunctionInfo2 的呼叫搭配使用,啟用泛型函式之精確 ClassID 的擷取。 |
COR_PRF_ENABLE_STACK_SNAPSHOT |
啟用 DoStackSnapshot 的呼叫。 |
COR_PRF_USE_PROFILE_IMAGES |
讓原生映像搜尋功能尋找分析工具增強型的映像。 如果沒有為指定的組件找到任何分析工具增強型的映像,則 Common Language Runtime 會針對該組件回到 JIT。 |
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUSt |
停用在 Just-In-Time (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