Freigeben über


ICorProfilerInfo4::GetILToNativeMapping2-Methode

Ruft eine Zuordnung von CIL -Offsets (Common Intermediate Language) zu systemeigenen Offsets für den Code ab, der in der JIT-neu kompilierten Version der angegebenen Funktion enthalten ist.

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

Die Parameter

functionId [in] Die ID der Funktion, die den Code enthält.

pReJitId [in] Die Identität der JIT-rekompilierten Funktion. Die Identität muss in .NET Framework 4.5 null sein.

cMap [in] Die maximale Größe des map Arrays.

pcMap [out] Die Gesamtanzahl der verfügbaren COR_DEBUG_IL_TO_NATIVE_MAP Strukturen.

map [out] Ein Array von COR_DEBUG_IL_TO_NATIVE_MAP Strukturen, von denen jeder die Offsets angibt. Nachdem die GetILToNativeMapping2 Methode zurückgegeben wurde, map enthält sie einige oder alle COR_DEBUG_IL_TO_NATIVE_MAP Strukturen.

Bemerkungen

GetILToNativeMapping2 ähnelt der ICorProfilerInfo::GetILToNativeMapping-Methode , mit der Ausnahme, dass der Profiler die ID der neu kompilierten Funktion in zukünftigen Versionen angeben kann.

Hinweis

Die ICorProfilerFunctionControl::SetILInstrumentedCodeMap-Methode ist in .NET Framework 4.5 nicht implementiert, sodass Funktionen, die JIT-rekompiliert wurden, keine IL-zu-systemeigene Zuordnung aufweisen können, die sich von der ursprünglich kompilierten Funktion unterscheidet. GetILToNativeMapping2 Daher kann es nicht mit einer nichtzero JIT-recompilierten ID in .NET Framework 4.5 aufgerufen werden.

Die GetILToNativeMapping2 Methode gibt ein Array von COR_DEBUG_IL_TO_NATIVE_MAP Strukturen zurück. Um zu vermitteln, dass bestimmte Bereiche systemeigener Anweisungen speziellen Codebereichen entsprechen (z. B. dem Prolog), kann ilOffset ein Eintrag im Array sein Feld auf einen Wert der CorDebugIlToNativeMappingTypes-Aufzählung festlegen lassen.

Nach GetILToNativeMapping2 dem Zurückgeben müssen Sie überprüfen, ob der map Puffer groß genug war, um alle COR_DEBUG_IL_TO_NATIVE_MAP Strukturen zu enthalten. Vergleichen Sie dazu den Wert mit cMap dem Wert des pcMap Parameters. Wenn der pcMap Wert, wenn er mit der Größe einer COR_DEBUG_IL_TO_NATIVE_MAP Struktur multipliziert wird, größer als cMapist, weisen Sie einen größeren map Puffer zu, aktualisieren cMap Sie mit der neuen, größeren Größe, und rufen Sie es erneut auf GetILToNativeMapping2 .

Alternativ können Sie zuerst einen Puffer der Länge map Null aufrufenGetILToNativeMapping2, um die richtige Puffergröße abzurufen. Anschließend können Sie die Puffergröße auf den zurückgegebenen pcMap Wert festlegen und erneut aufrufen GetILToNativeMapping2 .

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Kopfball: CorProf.idl, CorProf.h

Bibliothek: CorGuids.lib

.NET Framework-Versionen: Verfügbar seit 4.5

Siehe auch