Udostępnij za pośrednictwem


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 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

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

Zobacz też