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

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 (0) 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. Nach Rückgabe der GetILToNativeMapping2-Methode enthält map einige oder alle COR_DEBUG_IL_TO_NATIVE_MAP-Strukturen.

Bemerkungen

GetILToNativeMapping2 ähnelt der ICorProfilerInfo:: GetILToNativeMapping-Methode, außer dass sie es dem Profiler ermöglicht, die ID der erneut kompilierten Funktion in zukünftigen Versionen anzugeben.

Hinweis

Die ICorProfilerFunctionControl::SetILInstrumentedCodeMap-Methode ist in .NET Framework 4.5 nicht implementiert, sodass erneut JIT kompilierte Funktionen keine Zuordnung zwischen IL-Code und nativem Code aufweisen können, die sich von der ursprünglich kompilierten Funktion unterscheidet. Daher kann GetILToNativeMapping2 nicht mit einer erneut JIT kompilierten ID ungleich null in .NET Framework 4.5 aufgerufen werden.

Die GetILToNativeMapping2-Methode gibt ein Array von COR_DEBUG_IL_TO_NATIVE_MAP-Strukturen zurück. Zur Übermittlung der Information, dass bestimmte Bereiche nativer Anweisungen besonderen Codebereichen entsprechen (beispielsweise dem Prolog), kann das Feld ilOffset für einen Eintrag im Array auf einen Wert der CorDebugIlToNativeMappingTypes-Enumeration festgelegt sein.

Nachdem GetILToNativeMapping2 ausgeführt ist, müssen Sie sich vergewissern, dass der map-Puffer groß genug war, um alle COR_DEBUG_IL_TO_NATIVE_MAP-Strukturen zu enthalten. Vergleichen Sie hierzu den Wert von cMap mit dem Wert des pcMap-Parameters. Wenn der pcMap-Wert nach Multiplikation mit der Größe einer COR_DEBUG_IL_TO_NATIVE_MAP-Struktur größer als cMap ist, weisen Sie einen größeren map-Puffer zu, aktualisieren Sie cMap mit der neuen Größe, und rufen Sie GetILToNativeMapping2 erneut auf.

Alternativ können Sie zuerst GetILToNativeMapping2 mit einem map-Puffer der Länge 0 (NULL) aufrufen, um die richtige Puffergröße zu ermitteln. Sie können die Puffergröße dann auf den Wert festlegen, der von pcMap zurückgegeben wurde, und GetILToNativeMapping2 erneut aufrufen.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: CorProf.idl, CorProf.h

Bibliothek: CorGuids.lib

.NET Framework-Versionen: Seit Version 4.5 verfügbar

Siehe auch