Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 GetILToNativeMapping2map 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 / Notatka
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.
Requirements
Platformy: Zobacz Wymagania systemowe.
Nagłówek: CorProf.idl, CorProf.h
Biblioteka: CorGuids.lib
Wersje programu .NET Framework: Dostępne od wersji 4.5