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