次の方法で共有


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 以降で使用可能

関連項目