ICorProfilerCallback4::ReJITError メソッド
Just-In-Time (JIT) コンパイラが再コンパイル プロセスでエラーを検出したことをプロファイラーに通知します。
構文
HRESULT ReJITError(
[in] ModuleID moduleId,
[in] mdMethodDef methodId,
[in] FunctionID functionId,
[in] HRESULT hrStatus);
パラメーター
moduleID
[in] 再コンパイルの試行に失敗した ModuleID
。
methodId
[in] 再コンパイルの試行に失敗したメソッドの MethodDef
。
functionId
[in] 再コンパイル中または再コンパイルのマークが付けられている関数インスタンス。 この値はエラーがインスタンス化ごとではなくメソッドごとに発生した場合に NULL
になる可能性があります (たとえば、プロファイラーで、再コンパイルするメソッドに対して無効なメタデータ トークンを指定した場合など)。
hrStatus
[in] エラーの性質を示す HRESULT。 値の一覧については、「状態 HRESULT」セクションを参照してください。
戻り値
このコールバックからの戻り値は無視されます。
状態 HRESULT
状態配列 HRESULT | 説明 |
---|---|
E_INVALIDARG | moduleID または methodDef トークンは NULL です。 |
CORPROF_E_DATAINCOMPLETE | モジュールが完全に読み込まれていないか、またはアンロード中です。 |
CORPROF_E_MODULE_IS_DYNAMIC | 指定されたモジュールは (Reflection.Emit などによって) 動的に生成されたため、このメソッドではサポートされません。 |
CORPROF_E_FUNCTION_IS_COLLECTIBLE | メソッドは回収可能アセンブリにインスタンス化されるため、再コンパイルできません。 非リフレクション コンテキスト (たとえば、List<MyCollectibleStruct> ) で定義されている型と関数は、回収可能アセンブリにインスタンス化できます。 |
E_OUTOFMEMORY | CLR は、JIT 再コンパイル用の指定されたメソッドにマークを付けようとしている間にメモリ不足になりました。 |
その他 | オペレーティング システムは、CLR 制御範囲外のエラーを返しました。 たとえば、メモリ ページのアクセスの保護を変更するシステム コールに失敗した場合、オペレーティング システムのエラーが表示されます。 |
必要条件
:「システム要件」を参照してください。
ヘッダー : CorProf.idl、CorProf.h
ライブラリ: CorGuids.lib
.NET Framework のバージョン: 4.5 以降で使用可能
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET