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_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;  

成員

下列各節會依類別列出 COR_PRF_MONITOR 列舉成員。 這些類別包括:

未設定旗標

member 描述
COR_PRF_MONITOR_NONE 沒有設定旗標。

回呼旗標

member 描述
COR_PRF_MONITOR_ALL 啟用所有回呼事件。
COR_PRF_MONITOR_APPDOMAIN_LOADS 控制 ICorProfilerCallback 介面中的 AppDomainCreation*AppDomainShutdown* 回呼。
COR_PRF_MONITOR_ASSEMBLY_LOADS 控制 ICorProfilerCallback 介面中的 AssemblyLoad*AssemblyUnload* 回呼。
COR_PRF_MONITOR_CACHE_SEARCHES 控制 ICorProfilerCallback 介面中的 JITCachedFunctionSearch* 回呼。

此旗標的行為在 2.0 版.NET Framework變更。
COR_PRF_MONITOR_CCW 控制 ICorProfilerCallback 介面中的 COMClassicVTable* 回呼。
COR_PRF_MONITOR_CLASS_LOADS 控制 ICorProfilerCallback 介面中的 ClassLoad*ClassUnload* 回呼。
COR_PRF_MONITOR_CLR_EXCEPTIONS 控制 ICorProfilerCallback 介面中的 ExceptionCLRCatcher* 回呼。
COR_PRF_MONITOR_CODE_TRANSITIONS 控制 ICorProfilerCallback 介面中的 UnmanagedToManagedTransitionManagedToUnmanagedTransition 回呼
COR_PRF_MONITOR_ENTERLEAVE 控制 FunctionEnter*FunctionLeave*FunctionTailCall* 分析全域靜態函式
COR_PRF_MONITOR_EXCEPTIONS 控制 ICorProfilerCallback 介面中的 ExceptionThrown 回呼和 ExceptionSearch*ExceptionOSHandler*ExceptionUnwind*ExceptionCatcher* 回呼。
COR_PRF_MONITOR_FUNCTION_UNLOADS 控制 ICorProfilerCallback 介面中的 FunctionUnloadStarted 回呼。
COR_PRF_MONITOR_GC 控制 ICorProfilerCallback* 介面中的 GarbageCollectionStartedGarbageCollectionFinishedMovedReferencesMovedReferences2SurvivingReferencesSurvivingReferences2ObjectReferencesObjectsAllocatedByClassRootReferencesRootReferences2HandleCreatedHandleDestroyedFinalizeableObjectQueued 回呼。 當配置 COR_PRF_MONITOR_GC 時,會關閉並行記憶體回收。
COR_PRF_MONITOR_JIT_COMPILATION 控制 ICorProfilerCallback 介面中的 JITCompilation*JITFunctionPitchedJITInlining 回呼。
COR_PRF_MONITOR_MODULE_LOADS 控制 ICorProfilerCallback 介面中的 ModuleLoad*ModuleUnload*ModuleAttachedToAssembly 回呼。
COR_PRF_MONITOR_OBJECT_ALLOCATED 可控制 ICorProfilerCallback 介面中的 ObjectAllocated 回呼。
COR_PRF_MONITOR_REMOTING 控制 ICorProfilerCallback 介面中的 Remoting* 回呼。
COR_PRF_MONITOR_REMOTING_ASYNC 控制 Remoting* 回呼是否會監視非同步事件。
COR_PRF_MONITOR_REMOTING_COOKIE 控制 Cookie 是否傳遞至 Remoting* 回呼。
COR_PRF_MONITOR_SUSPENDS 控制 ICorProfilerCallback 介面中的 RuntimeSuspend*RuntimeResume*RuntimeThreadSuspendedRuntimeThreadResumed 回呼。
COR_PRF_MONITOR_THREADS 控制 ICorProfilerCallbackICorProfilerCallback2 介面中的 ThreadCreatedThreadDestroyedThreadAssignedToOSThreadThreadNameChanged 回呼。

功能啟用旗標

member 描述
COR_PRF_ENABLE_FRAME_INFO 啟用透過搭配 FunctionEnter2 回呼所傳回的 COR_PRF_FRAME_INFO 值呼叫 GetFunctionInfo2 方法,擷取泛型函式的確切 ClassID
COR_PRF_ENABLE_FUNCTION_ARGS 啟用使用 FunctionEnter2 回呼,或 FunctionEnter3WithInfo 回呼及 GetFunctionEnter3Info 方法追蹤引數。
COR_PRF_ENABLE_FUNCTION_RETVAL 啟用使用 FunctionLeave2 回呼,或 FunctionLeave3WithInfo 回呼和 GetFunctionLeave3Info 方法追蹤傳回值。
COR_PRF_ENABLE_INPROC_DEBUGGING 已取代。

不支援同處理序偵錯。 此旗標無效。
COR_PRF_ENABLE_JIT_MAPS 已取代。

允許分析工具使用 GetILToNativeMapping 取得 IL 與原生 (IL-to-native) 的對應。 從 .NET Framework 2.0 開始,執行時間一律會追蹤 IL 到原生對應;因此,一律會將此旗標視為設定。
COR_PRF_ENABLE_OBJECT_ALLOCATED 通知執行階段,分析工具可能想要物件配置通知。 必須在初始化期間設定此旗標。 這可讓分析工具在後續使用 COR_PRF_MONITOR_OBJECT_ALLOCATED 旗標接收 ObjectAllocated 回呼。
COR_PRF_ENABLE_REJIT 啟用呼叫 RequestReJITRequestRevert 方法。 分析工具必須在啟動時設定此旗標。 若分析工具指定此旗標,則必須也要指定 COR_PRF_DISABLE_ALL_NGEN_IMAGES
COR_PRF_ENABLE_STACK_SNAPSHOT 啟用呼叫 DoStackSnapshot 方法。

組態旗標

member 描述
COR_PRF_DISABLE_ALL_NGEN_IMAGES 防止載入所有原生映像 (包含分析工具增強型映像)。 若指定此旗標及 COR_PRF_USE_PROFILE_IMAGES 旗標,則使用 COR_PRF_DISABLE_ALL_NGEN_IMAGES
COR_PRF_DISABLE_INLINING 停用所有內嵌。
COR_PRF_DISABLE_OPTIMIZATIONS 停用所有程式碼最佳化。
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST 針對完全信任組件,停用通常在 Just-in-time (JIT) 編譯及類別載入期間完成的安全性透明度檢查。 這可讓一些實作更容易執行。
COR_PRF_USE_PROFILE_IMAGES 使原生映像搜尋尋找分析工具增強型映像。 若沒有找到指定組件的分析工具增強型映像,Common Language Runtime 會回復為該組件的 JIT。 若指定此旗標及 COR_PRF_DISABLE_ALL_NGEN_IMAGES 旗標,則使用 COR_PRF_DISABLE_ALL_NGEN_IMAGES

組合旗標

member 描述
COR_PRF_ALL 代表所有 COR_PRF_MONITOR 旗標值。
COR_PRF_ALLOWABLE_AFTER_ATTACH 代表所有 COR_PRF_MONITOR 旗標,這些旗標可在分析工具連結至執行中的應用程式之後加以設定。 語法區段指出此位元遮罩中存在的個別旗標。
COR_PRF_MONITOR_ALL 啟用所有回呼事件。
COR_PRF_MONITOR_IMMUTABLE 代表所有 COR_PRF_MONITOR 旗標,這些旗標只能在初始化期間加以設定。 嘗試在初始化之後變更任何這些旗標,會傳回指出失敗的 HRESULT 值。
COR_PRF_REQUIRE_PROFILE_IMAGE 代表需要設定檔增強影像的所有 COR_PRF_MONITOR 旗標。

備註

COR_PRF_MONITOR 值可用於搭配 ICorProfilerInfo::GetEventMaskICorProfilerInfo::SetEventMask 方法,定義 Common Language Runtime 建立給分析工具的事件通知。

規格需求

平台:請參閱系統需求

標頭: CorProf.idl、CorProf.h

程式庫:CorGuids.lib

.NET Framework版本:自 1.0 起可用

另請參閱