ICorProfilerInfo4::GetILToNativeMapping2 – metoda

Získá mapu z běžných mezilehlých jazyků (CIL) posuny na nativní posuny kódu obsaženého v jiT-rekompilované verzi zadané funkce.

Syntaxe

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 [v] ID funkce, která obsahuje kód.

pReJitId [v] Identita funkce JIT-recompiled. Identita musí být v rozhraní .NET Framework 4.5 nula.

cMap [v] Maximální velikost map pole.

pcMap [ven] Celkový počet dostupných COR_DEBUG_IL_TO_NATIVE_MAP struktur.

map [ven] Pole COR_DEBUG_IL_TO_NATIVE_MAP struktur, z nichž každá určuje posuny. GetILToNativeMapping2 Po vrácení map metody bude obsahovat některé nebo všechny COR_DEBUG_IL_TO_NATIVE_MAP struktury.

Poznámky

GetILToNativeMapping2 je podobný ICorProfilerInfo::GetILToNativeMapping metoda, s tím rozdílem, že profiler umožní určit ID rekompilované funkce v budoucích verzích.

Poznámka:

ICorProfilerFunctionControl::SetILInstrumentedCodeMap metoda není implementována v rozhraní .NET Framework 4.5, takže funkce, které byly rekompilovány JIT nemohou mít mapování IL-to-native, které se liší od původně kompilované funkce. GetILToNativeMapping2 Proto nelze volat s nenulovým ID rekompilovaného JIT v rozhraní .NET Framework 4.5.

Metoda GetILToNativeMapping2 vrátí pole COR_DEBUG_IL_TO_NATIVE_MAP struktur. Aby bylo možné sdělit, že určité oblasti nativních instrukcí odpovídají speciálním oblastem kódu (například prolog), může mít položka v poli nastavené pole ilOffset na hodnotu CorDebugIlToNativeMappingTypes výčtu .

Po GetILToNativeMapping2 vrácení musíte ověřit, že map vyrovnávací paměť byla dostatečně velká, aby obsahovala všechny COR_DEBUG_IL_TO_NATIVE_MAP struktury. Uděláte to tak, že porovnáte hodnotu cMap s hodnotou parametru pcMap . pcMap Pokud je hodnota vynásobená velikostí COR_DEBUG_IL_TO_NATIVE_MAP struktury, je větší než cMap, přidělit větší map vyrovnávací paměť, aktualizovat cMap novou, větší velikost a znovu zavolatGetILToNativeMapping2.

Případně můžete nejprve zavolat GetILToNativeMapping2 vyrovnávací paměť s nulovou délkou map , abyste získali správnou velikost vyrovnávací paměti. Velikost vyrovnávací paměti pak můžete nastavit na hodnotu vrácenou a pcMap znovu zavolat GetILToNativeMapping2 .

Požadavky

Platformy: Viz Požadavky na systém.

Záhlaví: CorProf.idl, CorProf.h

Knihovna: CorGuids.lib

Verze rozhraní .NET Framework: K dispozici od verze 4.5

Viz také