ICorProfilerCallback::ExceptionCatcherEnter メソッド

適切な catch ブロックに制御が渡されていることをプロファイラーに通知します。

構文

HRESULT ExceptionCatcherEnter(  
    [in] FunctionID functionId,  
    [in] ObjectID   objectId);  

パラメーター

functionId
[in] catch ブロックを含む関数の識別子。

objectId
[in] 処理されている例外の識別子。

解説

ExceptionCatcherEnter メソッドは、catch ポイントが Just-In-Time (JIT) コンパイラを使用してコンパイルされたコード内にある場合にのみ呼び出されます。 アンマネージド コードまたはランタイムの内部コードでキャッチされた例外は、この通知を呼び出しません。 ExceptionThrown 通知後にガベージ コレクションがオブジェクトを移動した可能性があるため、objectId 値が再度渡されます。

プロファイラーはこのメソッドの実装ではブロックしないでください。スタックが、ガベージ コレクションを許可する状態ではない可能性があり、そのため、優先ガベージ コレクションを有効にできないためです。 プロファイラーがここでブロックし、ガベージ コレクションを実行しようとすると、このコールバックが戻るまでランタイムがブロックします。

プロファイラーによるこのメソッドの実装では、マネージド コードを呼び出してはならず、いかなる状況でもマネージドメモリを割り当ててはいけません。

要件

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

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

ライブラリ: CorGuids.lib

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

関連項目