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 介面中的 UnmanagedToManagedTransition 和 ManagedToUnmanagedTransition 回呼 |
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* 介面中的 GarbageCollectionStarted、GarbageCollectionFinished、MovedReferences、MovedReferences2、SurvivingReferences、SurvivingReferences2、ObjectReferences、ObjectsAllocatedByClass、RootReferences、RootReferences2、HandleCreated、HandleDestroyed 和 FinalizeableObjectQueued 回呼。 當配置 COR_PRF_MONITOR_GC 時,會關閉並行記憶體回收。 |
COR_PRF_MONITOR_JIT_COMPILATION |
控制 ICorProfilerCallback 介面中的 JITCompilation* 、JITFunctionPitched 和 JITInlining 回呼。 |
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* 、RuntimeThreadSuspended 和 RuntimeThreadResumed 回呼。 |
COR_PRF_MONITOR_THREADS |
控制 ICorProfilerCallback 和 ICorProfilerCallback2 介面中的 ThreadCreated、ThreadDestroyed、ThreadAssignedToOSThread 和 ThreadNameChanged 回呼。 |
功能啟用旗標
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 |
啟用呼叫 RequestReJIT 和 RequestRevert 方法。 分析工具必須在啟動時設定此旗標。 若分析工具指定此旗標,則必須也要指定 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::GetEventMask 和 ICorProfilerInfo::SetEventMask 方法,定義 Common Language Runtime 建立給分析工具的事件通知。
規格需求
平台:請參閱系統需求。
標頭: CorProf.idl、CorProf.h
程式庫:CorGuids.lib
.NET Framework版本:自 1.0 起可用