ICorProfilerInfo4::GetILToNativeMapping2-metod
Hämtar en karta från CIL-förskjutningar (Common Intermediate Language) till inbyggda förskjutningar för koden som finns i den JIT-omkompilerade versionen av den angivna funktionen.
Syntax
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[]);
Parametrar
functionId
[i] ID:t för funktionen som innehåller koden.
pReJitId
[i] Identiteten för den JIT-omkompilerade funktionen. Identiteten måste vara noll i .NET Framework 4.5.
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. GetILToNativeMapping2
När metoden har returnerats map
innehåller den vissa eller alla COR_DEBUG_IL_TO_NATIVE_MAP
strukturer.
Kommentarer
GetILToNativeMapping2
liknar metoden ICorProfilerInfo::GetILToNativeMapping , förutom att profileraren kan ange ID:t för den omkompilerade funktionen i framtida versioner.
Kommentar
Metoden ICorProfilerFunctionControl::SetILInstrumentedCodeMap implementeras inte i .NET Framework 4.5, så funktioner som har JIT-omkompilerats kan inte ha en IL-till-intern mappning som skiljer sig från den ursprungligen kompilerade funktionen. Det går därför GetILToNativeMapping2
inte att anropa med ett JIT-omkompilerat ID som inte är noll i .NET Framework 4.5.
Metoden GetILToNativeMapping2
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 GetILToNativeMapping2
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 cMap
allokerar du en större map
buffert, uppdaterar cMap
med den nya, större storleken och anropar GetILToNativeMapping2
igen.
Du kan också först anropa GetILToNativeMapping2
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 GetILToNativeMapping2
igen.
Krav
Plattformar: Se Systemkrav.
Rubrik: CorProf.idl, CorProf.h
Bibliotek: CorGuids.lib
.NET Framework-versioner: Finns sedan 4.5