Dela via


ICorProfilerInfo::GetILToNativeMapping-metod

Hämtar en karta från CIL-förskjutningar (Common Intermediate Language) till inbyggda förskjutningar för koden som finns i den angivna funktionen.

Syntax

HRESULT GetILToNativeMapping(
    [in] FunctionID functionId,
    [in] ULONG32 cMap,
    [out] ULONG32 *pcMap,
    [out, size_is(cMap), length_is(*pcMap)]
        COR_DEBUG_IL_TO_NATIVE_MAP map[]);

Parametrar

functionId [i] ID:t för funktionen som innehåller koden.

cMap [i] Matrisens map maximala storlek.

pcMap [ut] Det totala antalet tillgängliga COR_DEBUG_IL_TO_NATIVE_MAP strukturer.

map [ut] En matris med COR_DEBUG_IL_TO_NATIVE_MAP strukturer som var och en anger förskjutningarna. GetILToNativeMapping När metoden har returnerats map innehåller den vissa eller alla COR_DEBUG_IL_TO_NATIVE_MAP strukturer.

Kommentarer

Metoden GetILToNativeMapping returnerar en matris med COR_DEBUG_IL_TO_NATIVE_MAP strukturer. För att förmedla att vissa intervall med inbyggda instruktioner motsvarar särskilda kodregioner (till exempel prolog) kan en post i matrisen ha sitt ilOffset fält inställt på värdet cordebugIlToNativeMappingTypes-uppräkning .

När GetILToNativeMapping du har returnerat den måste du kontrollera att bufferten map var tillräckligt stor för att innehålla alla COR_DEBUG_IL_TO_NATIVE_MAP strukturer. Det gör du genom att jämföra värdet cMap för med värdet för parametern pcMap . pcMap Om värdet, när det multipliceras med storleken på en COR_DEBUG_IL_TO_NATIVE_MAP struktur, är större än cMapallokerar du en större map buffert, uppdaterar cMap med den nya, större storleken och anropar GetILToNativeMapping igen.

Du kan också först anropa GetILToNativeMapping med en buffert med noll längd map för att få rätt buffertstorlek. Du kan sedan ange buffertstorleken till det värde som returneras och pcMap anropa GetILToNativeMapping igen.

Krav

Plattformar: Se Systemkrav.

Rubrik: CorProf.idl, CorProf.h

Bibliotek: CorGuids.lib

.NET Framework-versioner: Tillgänglig sedan 2.0

Se även