Метод ICorProfilerInfo4::GetILToNativeMapping2
Получает карту из смещения общего промежуточного языка (CIL) на собственные смещения для кода, содержащегося в версии JIT-recompiled указанной функции.
Синтаксис
HRESULT GetILToNativeMapping2(
[in] FunctionID functionId,
[in] ReJITID reJitId,
[in] ULONG32 cMap,
[out] ULONG32 *pcMap,
[out, size_is(cMap), length_is(*pcMap)]
COR_DEBUG_IL_TO_NATIVE_MAP map[]);
Параметры
functionId
[in] Идентификатор функции, содержащей код.
pReJitId
[in] Удостоверение функции JIT-recompiled. Удостоверение должно быть равно нулю в платформа .NET Framework 4.5.
cMap
[in] Максимальный размер массива map
.
pcMap
[out] Общее количество доступных COR_DEBUG_IL_TO_NATIVE_MAP структур.
map
[out] Массив COR_DEBUG_IL_TO_NATIVE_MAP
структур, каждый из которых задает смещения. После возврата метода GetILToNativeMapping2
параметр map
будет содержать все или некоторые из структур COR_DEBUG_IL_TO_NATIVE_MAP
.
Замечания
GetILToNativeMapping2
аналогичен методу ICorProfilerInfo::GetILToNativeMapping , за исключением того, что он позволит профилировщику указать идентификатор перекомпилированного функции в будущих выпусках.
Примечание.
Метод ICorProfilerFunctionControl::SetILInstrumentedCodeMap не реализован в платформа .NET Framework 4.5, поэтому функции, которые были перекомпилированы JIT-recompiled, не могут иметь собственное сопоставление IL-to-native, которое отличается от первоначально скомпилированной функции. Таким образом, GetILToNativeMapping2
нельзя вызывать ненулевой идентификатор JIT-recompiled в платформа .NET Framework 4.5.
Метод GetILToNativeMapping2
возвращает массив структур COR_DEBUG_IL_TO_NATIVE_MAP
. Чтобы передать, что определенные диапазоны собственных инструкций соответствуют специальным областям кода (например, прологу), запись в массиве может иметь значение ilOffset
значения перечисления CorDebugIlToNativeMappingTypes.
После возврата метода GetILToNativeMapping2
необходимо убедиться, что буфер map
был достаточно велик, чтобы вместить в себя все структуры COR_DEBUG_IL_TO_NATIVE_MAP
. Для этого сравните значение параметра cMap
со значением параметра pcMap
. Если значение pcMap
, умноженное на размер структуры COR_DEBUG_IL_TO_NATIVE_MAP
COR_PRF_CODE_INFO, больше значения cMap
, выделите буфер map
большего размера, обновите параметр cMap
, задав новый, больший размер, и вызовите метод GetILToNativeMapping2
снова.
Кроме того, сначала можно вызвать метод GetILToNativeMapping2
с буфером map
нулевой длины для получения правильного размера буфера. Затем можно задать размер буфера равным значению, возвращенному в параметре pcMap
, и вызвать метод GetILToNativeMapping2
снова.
Требования
Платформы: см. раздел Требования к системе.
Заголовок: CorProf.idl, CorProf.h
Библиотека: CorGuids.lib
версии платформа .NET Framework: Доступно с версии 4.5