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 以降で使用可能
関連項目
.NET