Delen via


Methode ICorProfilerInfo4::GetILToNativeMapping2

Hiermee haalt u een kaart op van CIL-offsets (Common Intermediate Language) naar systeemeigen offsets voor de code in de JIT-hercompileerde versie van de opgegeven functie.

Syntaxis

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[]);

Parameters

functionId [in] De id van de functie die de code bevat.

pReJitId [in] De identiteit van de functie JIT die opnieuw is gecompileerd. De identiteit moet nul zijn in .NET Framework 4.5.

cMap [in] De maximale grootte van de map matrix.

pcMap [uit] Het totale aantal beschikbare COR_DEBUG_IL_TO_NATIVE_MAP structuren.

map [uit] Een matrix van COR_DEBUG_IL_TO_NATIVE_MAP structuren, die elk de verschuivingen specificeert. Nadat de GetILToNativeMapping2 methode is geretourneerd, map bevat dit enkele of alle COR_DEBUG_IL_TO_NATIVE_MAP structuren.

Opmerkingen

GetILToNativeMapping2 is vergelijkbaar met de methode ICorProfilerInfo::GetILToNativeMapping , behalve dat de profiler in toekomstige releases de id van de opnieuw gecompileerde functie kan opgeven.

Notitie

De methode ICorProfilerFunctionControl::SetILInstrumentedCodeMap is niet geïmplementeerd in .NET Framework 4.5, dus functies die zijn gecompileerd met JIT, kunnen geen IL-naar-native toewijzing hebben die verschilt van de oorspronkelijk gecompileerde functie. Als zodanig GetILToNativeMapping2 kan niet worden aangeroepen met een niet-nul-id die opnieuw is gecompileerd in .NET Framework 4.5.

De GetILToNativeMapping2 methode retourneert een matrix met COR_DEBUG_IL_TO_NATIVE_MAP structuren. Om aan te geven dat bepaalde bereiken van systeemeigen instructies overeenkomen met speciale coderegio's (bijvoorbeeld het prolog), kan een vermelding in de matrix het veld laten ilOffset instellen op een waarde van de opsomming CorDebugIlToNativeMappingTypes .

Nadat GetILToNativeMapping2 de buffer is geretourneerd, moet u controleren of de map buffer groot genoeg was om alle COR_DEBUG_IL_TO_NATIVE_MAP structuren te bevatten. Hiervoor vergelijkt u de waarde met cMap de waarde van de pcMap parameter. Als de waarde, wanneer deze pcMap wordt vermenigvuldigd met de grootte van een COR_DEBUG_IL_TO_NATIVE_MAP structuur, groter is dan cMap, een grotere map buffer toewijst, bijwerkt cMap met de nieuwe, grotere grootte en opnieuw aanroept GetILToNativeMapping2 .

U kunt ook eerst bellen GetILToNativeMapping2 met een buffer met lengte nul map om de juiste buffergrootte te verkrijgen. Vervolgens kunt u de buffergrootte instellen op de waarde die wordt pcMap geretourneerd en opnieuw aanroepen GetILToNativeMapping2 .

Vereisten

Platformen: Zie Systeemvereisten.

Koptekst: CorProf.idl, CorProf.h

Bibliotheek: CorGuids.lib

.NET Framework-versies: beschikbaar sinds 4.5

Zie ook