共用方式為


COR_PRF_MONITOR

更新:2007 年 11 月

包含值,用來指定行為、功能或分析工具想要訂閱的事件。

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

控制 Cookie 是否傳遞給 Remoting 回呼

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

FunctionEnter2FunctionLeave2FunctionTailcall2 的呼叫所傳回的 COR_PRF_FRAME_INFO 結構與 GetFunctionInfo2 的呼叫搭配使用,啟用泛型函式之精確 ClassID 的擷取。

COR_PRF_ENABLE_STACK_SNAPSHOT

啟用 DoStackSnapshot 的呼叫。

COR_PRF_USE_PROFILE_IMAGES

讓原生映像搜尋功能尋找分析工具增強型的映像。如果沒有為指定的組件找到任何分析工具增強型的映像,則 Common Language Runtime 會針對該組件回到 JIT。

COR_PRF_ALL

有效旗標值的遮罩。

COR_PRF_MONITOR_IMMUTABLE

表示只能在初始化期間設定的所有旗標。在初始化之後,嘗試變更任何這些旗標,則會傳回表示失敗的 HRESULT 值。

需求

**平台:**請參閱 .NET Framework 系統需求

**標頭:**CorProf.idl

**程式庫:**CorGuids.lib

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

請參閱

其他資源

分析列舉型別