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