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 列挙型のメンバーをカテゴリ別に一覧表示します。 カテゴリは次のとおりです。

フラグの設定なし

メンバー 説明
COR_PRF_MONITOR_NONE フラグが設定されていません。

コールバック フラグ

メンバー 説明
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* コールバックを制御します。

このフラグの動作は、.NET Framework バージョン 2.0 で変更されています。
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 ExceptionThrown コールバック、および ICorProfilerCallback インターフェイス内で ExceptionSearch*ExceptionOSHandler*ExceptionUnwind*、および ExceptionCatcher* コールバックを制御します。
COR_PRF_MONITOR_FUNCTION_UNLOADS ICorProfilerCallback インターフェイスで FunctionUnloadStarted コールバックを制御します。
COR_PRF_MONITOR_GC ICorProfilerCallback* インターフェイスで GarbageCollectionStartedGarbageCollectionFinishedMovedReferencesMovedReferences2SurvivingReferencesSurvivingReferences2ObjectReferencesObjectsAllocatedByClassRootReferencesRootReferences2HandleCreatedHandleDestroyed、および 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 クッキーが Remoting* コールバックに渡されるかどうかを制御します。
COR_PRF_MONITOR_SUSPENDS ICorProfilerCallback インターフェイスで RuntimeSuspend*RuntimeResume*RuntimeThreadSuspended、および RuntimeThreadResumed コールバックを制御します。
COR_PRF_MONITOR_THREADS ICorProfilerCallback および ICorProfilerCallback2 インターフェイスで、ThreadCreatedThreadDestroyedThreadAssignedToOSThread、および ThreadNameChanged コールバックを制御します。

機能の有効化フラグ

メンバー 説明
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-to-native マップを取得できるようにします。 .NET Framework 2.0 以降、ランタイムは常に IL-to-native マップを追跡するため、このフラグは常に設定されていると見なされます。
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 メソッドに対する呼び出しを有効にします。

構成フラグ

メンバー 説明
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 ネイティブ イメージを検索して、プロファイラーが拡張したイメージを見つけます。 特定のアセンブリでプロファイラーが拡張したイメージが見つからなかった場合、共通言語ランタイムはそのアセンブリの JIT に戻ります。 このフラグと COR_PRF_DISABLE_ALL_NGEN_IMAGES フラグが両方指定されている場合は、COR_PRF_DISABLE_ALL_NGEN_IMAGES が使用されます。

複合フラグ

メンバー 説明
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 フラグを表しています。

解説

共通言語ランタイムがプロファイラーに対して作成するイベント通知を定義するには、ICorProfilerInfo::GetEventMask および ICorProfilerInfo::SetEventMask メソッドで COR_PRF_MONITOR 値を使用します。

必要条件

:システム要件」を参照してください。

ヘッダー : CorProf.idl、CorProf.h

ライブラリ: CorGuids.lib

.NET Framework のバージョン: 1.0 以降で使用可能

関連項目