Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Получает карту из смещения общего промежуточного языка (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-перекомпилированного идентификатора в .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 структуры, большеcMap, выделяется более крупный map буфер, обновляется cMap с новым, большим размером и снова вызываетсяGetILToNativeMapping2.
Кроме того, можно сначала вызвать GetILToNativeMapping2 буфер нулевой длины map , чтобы получить правильный размер буфера. Затем можно задать размер буфера значением, возвращенным и снова вызываемым pcMapGetILToNativeMapping2 .
Требования
Платформы: см. раздел Требования к системе.
Заголовок: CorProf.idl, CorProf.h
Библиотека: CorGuids.lib
Версии .NET Framework: Доступно с версии 4.5