Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Obtient une carte des décalages CIL (Common Intermediate Language) en décalages natifs pour le code contenu dans la version recompilée JIT de la fonction spécifiée.
Syntaxe
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[]);
Paramètres
functionId [in] ID de la fonction qui contient le code.
pReJitId [in] Identité de la fonction recompilée JIT. L’identité doit être égale à zéro dans .NET Framework 4.5.
cMap [in] Taille maximale du map tableau.
pcMap [out] Nombre total de structures COR_DEBUG_IL_TO_NATIVE_MAP disponibles.
map [out] Tableau de COR_DEBUG_IL_TO_NATIVE_MAP structures, chacun d’entre eux spécifiant les décalages. Une fois la GetILToNativeMapping2 méthode retournée, map contient une partie ou l’ensemble des COR_DEBUG_IL_TO_NATIVE_MAP structures.
Remarques
GetILToNativeMapping2 est similaire à la méthode ICorProfilerInfo ::GetILToNativeMapping , sauf qu’elle permettra au profileur de spécifier l’ID de la fonction recompilée dans les versions ultérieures.
Note
La méthode ICorProfilerFunctionControl ::SetILInstrumentedCodeMap n’est pas implémentée dans .NET Framework 4.5. Par conséquent, les fonctions qui ont été recompilées par JIT ne peuvent pas avoir de mappage IL-to-native qui diffère de la fonction compilée à l’origine. Par conséquent, GetILToNativeMapping2 ne peut pas être appelé avec un ID non recompilé JIT dans .NET Framework 4.5.
La GetILToNativeMapping2 méthode retourne un tableau de COR_DEBUG_IL_TO_NATIVE_MAP structures. Pour transmettre que certaines plages d’instructions natives correspondent à des régions spéciales de code (par exemple, le prolog), une entrée dans le tableau peut avoir son ilOffset champ défini sur une valeur de l’énumération CorDebugIlToNativeMappingTypes .
Une fois GetILToNativeMapping2 retourné, vous devez vérifier que la map mémoire tampon était suffisamment grande pour contenir toutes les COR_DEBUG_IL_TO_NATIVE_MAP structures. Pour ce faire, comparez la valeur du cMap paramètre à la valeur du pcMap paramètre. Si la pcMap valeur, lorsqu’elle est multipliée par la taille d’une COR_DEBUG_IL_TO_NATIVE_MAP structure, est supérieure cMapà , alloue une mémoire tampon plus grande map , met à jour cMap avec la nouvelle, plus grande taille et appelez GetILToNativeMapping2 à nouveau.
Vous pouvez également d’abord appeler GetILToNativeMapping2 avec une mémoire tampon de longueur map nulle pour obtenir la taille correcte de la mémoire tampon. Vous pouvez ensuite définir la taille de la mémoire tampon sur la valeur retournée pcMap et appeler GetILToNativeMapping2 à nouveau.
Spécifications
Plateformes : Consultez Configuration requise.
En-tête: CorProf.idl, CorProf.h
Bibliothèque: CorGuids.lib
Versions du .NET Framework : Disponible depuis la version 4.5