ICorProfilerInfo4::GetILToNativeMapping2 — Metoda
Pobiera mapę z typowego języka pośredniego (CIL) przesunięcia na natywne przesunięcia dla kodu zawartego w rekompilowanej wersji JIT określonej funkcji.
Składnia
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[]);
Parametry
functionId
[in] Identyfikator funkcji, która zawiera kod.
pReJitId
[in] Tożsamość funkcji JIT-recompiled. Tożsamość musi być równa zero w programie .NET Framework 4.5.
cMap
[in] Maksymalny rozmiar tablicy map
.
pcMap
[out] Całkowita liczba dostępnych struktur COR_DEBUG_IL_TO_NATIVE_MAP.
map
[out] Tablica COR_DEBUG_IL_TO_NATIVE_MAP
struktur, z których każda określa przesunięcia. Po powrocie GetILToNativeMapping2
map
metody będzie zawierać niektóre lub wszystkie COR_DEBUG_IL_TO_NATIVE_MAP
struktury.
Uwagi
GetILToNativeMapping2
jest podobny do metody ICorProfilerInfo::GetILToNativeMapping , z tą różnicą, że pozwoli profilerowi określić identyfikator funkcji ponownie skompilowanej w przyszłych wersjach.
Uwaga
Metoda ICorProfilerFunctionControl::SetILInstrumentedCodeMap nie jest zaimplementowana w programie .NET Framework 4.5, dlatego funkcje, które zostały skompilowane JIT, nie mogą mieć mapowania IL-to-native, które różni się od pierwotnie skompilowanej funkcji. W związku z tym GetILToNativeMapping2
nie można wywołać z identyfikatorem niezerowym JIT-rekompilowany w programie .NET Framework 4.5.
Metoda GetILToNativeMapping2
zwraca tablicę COR_DEBUG_IL_TO_NATIVE_MAP
struktur. Aby przekazać, że niektóre zakresy instrukcji natywnych odpowiadają specjalnym regionom kodu (na przykład prolog), wpis w tablicy może mieć jego ilOffset
pole ustawione na wartość wyliczenia CorDebugIlToNativeMappingTypes .
Po GetILToNativeMapping2
powrocie należy sprawdzić, czy map
bufor był wystarczająco duży, aby zawierał wszystkie COR_DEBUG_IL_TO_NATIVE_MAP
struktury. W tym celu porównaj wartość cMap
parametru z wartością parametru pcMap
. pcMap
Jeśli wartość jest pomnożona przez rozmiar COR_DEBUG_IL_TO_NATIVE_MAP
struktury, jest większa niż cMap
, przydziel większy map
bufor, zaktualizuj cMap
ją przy użyciu nowego, większego rozmiaru i wywołaj GetILToNativeMapping2
ponownie.
Alternatywnie można najpierw wywołać GetILToNativeMapping2
bufor o zerowej długości map
, aby uzyskać prawidłowy rozmiar buforu. Następnie można ustawić rozmiar buforu na wartość zwróconą w pcMap
pliku i wywołać GetILToNativeMapping2
ponownie.
Wymagania
Platformy: zobacz Wymagania systemowe.
Nagłówek: CorProf.idl, CorProf.h
Biblioteka: CorGuids.lib
Wersje programu .NET Framework: dostępne od wersji 4.5