ICorProfilerInfo::GetILToNativeMapping メソッド

共通中間言語 (CIL) オフセットから、指定した関数に含まれるコードのネイティブ オフセットへのマップを取得します。

構文

HRESULT GetILToNativeMapping(
    [in] FunctionID functionId,
    [in] ULONG32 cMap,
    [out] ULONG32 *pcMap,
    [out, size_is(cMap), length_is(*pcMap)]
        COR_DEBUG_IL_TO_NATIVE_MAP map[]);

パラメーター

functionId [in]コードを含む関数の ID。

cMap [in] map 配列の最大サイズ。

pcMap [out] 使用できる COR_DEBUG_IL_TO_NATIVE_MAP 構造体の総数。

map [out]構造体の COR_DEBUG_IL_TO_NATIVE_MAP 配列。各構造体はオフセットを指定します。 GetILToNativeMapping メソッドから制御が戻ると、COR_DEBUG_IL_TO_NATIVE_MAP 構造体の一部または全部が map に格納されます。

解説

GetILToNativeMapping メソッドは、COR_DEBUG_IL_TO_NATIVE_MAP 構造体の配列を返します。 ネイティブ命令の特定の範囲がコードの特殊な領域 (prolog など) に対応することを伝達するために、配列内のエントリの ilOffset フィールドに CorDebugIlToNativeMappingTypes 列挙体の値を設定できます。

GetILToNativeMapping から制御が戻ったら、map バッファーのサイズが十分で、すべての COR_DEBUG_IL_TO_NATIVE_MAP 構造体を格納できたかどうかを確認する必要があります。 これを行うには、cMap の値を pcMap パラメーターの値と比較します。 pcMap 値 に COR_DEBUG_IL_TO_NATIVE_MAP 構造体のサイズを乗算した結果が cMap より大きい場合は、map バッファーの割り当てを増やし、cMap を新しい大きいサイズに更新した後、GetILToNativeMapping を再度呼び出します。

別の方法として、最初に GetILToNativeMapping を長さゼロの map バッファーで呼び出して、適切なバッファーのサイズを取得します。 その後、バッファーのサイズを pcMap で返された値に設定し、GetILToNativeMapping を再度呼び出します。

必要条件

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

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

ライブラリ: CorGuids.lib

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

関連項目