Partager via


ICorProfilerInfo ::GetILToNativeMapping, méthode

Obtient une carte des décalages CIL (Common Intermediate Language) en décalages natifs pour le code contenu dans la fonction spécifiée.

Syntaxe

HRESULT GetILToNativeMapping(
    [in] FunctionID functionId,
    [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.

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 GetILToNativeMapping méthode retournée, map contient une partie ou l’ensemble des COR_DEBUG_IL_TO_NATIVE_MAP structures.

Remarques

La GetILToNativeMapping 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 GetILToNativeMapping 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 GetILToNativeMapping à nouveau.

Vous pouvez également d’abord appeler GetILToNativeMapping 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 GetILToNativeMapping à 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 2.0

Voir aussi