ICorProfilerInfo4::GetILToNativeMapping2, méthode

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. Suite au retour de la méthode GetILToNativeMapping2, map contient une partie ou la totalité des structures COR_DEBUG_IL_TO_NATIVE_MAP.

Notes

La méthode GetILToNativeMapping2 est semblable à la méthode ICorProfilerInfo::GetILToNativeMapping, à ceci près qu’elle permettra au profileur de spécifier l’ID de la fonction recompilée dans les futures versions.

Notes

La méthode ICorProfilerFunctionControl::SetILInstrumentedCodeMap n’étant pas implémentée dans le .NET Framework 4.5, le mappage du code IL au code natif des fonctions recompilées juste-à-temps ne doit pas différer de celui de la fonction compilée à l’origine. Par conséquent, la méthode GetILToNativeMapping2 ne peut pas être appelée avec un ID recompilé juste-à-temps différent de zéro dans le .NET Framework 4.5.

La méthode GetILToNativeMapping2 retourne un tableau de structures COR_DEBUG_IL_TO_NATIVE_MAP. Pour indiquer que certaines plages d’instructions natives correspondent à des régions spéciales de code (par exemple, le prologue), le champ ilOffset d’une entrée dans le tableau peut avoir comme valeur une valeur de l’énumération CorDebugIlToNativeMappingTypes.

Suite au retour de GetILToNativeMapping2, vous devez vérifier que la mémoire tampon map est suffisamment grande pour contenir toutes les structures COR_DEBUG_IL_TO_NATIVE_MAP. Pour ce faire, comparez la valeur de cMap à celle du paramètre pcMap. Si la valeur pcMap, une fois multipliée par la taille d'une structure COR_DEBUG_IL_TO_NATIVE_MAP, est supérieure à cMap, allouez une mémoire tampon map plus grande, mettez à jour cMap pour refléter la nouvelle taille et rappelez GetILToNativeMapping2.

Vous pouvez également commencer par appeler GetILToNativeMapping2 avec un tampon map de longueur nulle pour obtenir la taille correcte du tampon. Vous pouvez ensuite affecter à la taille de la mémoire tampon la valeur retournée dans pcMap et rappeler GetILToNativeMapping2.

Spécifications

Plateformes : Consultez Configuration requise.

En-tête : CorProf.idl, CorProf.h

Bibliothèque : CorGuids.lib

Versions de .NET Framework : disponible depuis la version 4.5

Voir aussi