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* インターフェイスで 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 |
クッキーが Remoting* コールバックに渡されるかどうかを制御します。 |
COR_PRF_MONITOR_SUSPENDS |
ICorProfilerCallback インターフェイスで RuntimeSuspend* 、RuntimeResume* 、RuntimeThreadSuspended、および RuntimeThreadResumed コールバックを制御します。 |
COR_PRF_MONITOR_THREADS |
ICorProfilerCallback および ICorProfilerCallback2 インターフェイスで、ThreadCreated、ThreadDestroyed、ThreadAssignedToOSThread、および 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 以降で使用可能
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET