Compartir a través de


ICorProfilerInfo4::GetILToNativeMapping2 (Método)

Obtiene un mapa de desplazamientos del lenguaje intermedio común (CIL) a desplazamientos nativos para el código contenido en la versión recompilada JIT de la función especificada.

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[]);

Parámetros

functionId [in] Identificador de la función que contiene el código.

pReJitId [in] Identidad de la función recompilada JIT. La identidad debe ser cero en .NET Framework 4.5.

cMap [in] Tamaño máximo de la map matriz.

pcMap [out] Número total de estructuras de COR_DEBUG_IL_TO_NATIVE_MAP disponibles.

map [out] Matriz de COR_DEBUG_IL_TO_NATIVE_MAP estructuras, cada una de las cuales especifica los desplazamientos. Una vez devuelto el GetILToNativeMapping2 método , map contendrá algunas o todas las COR_DEBUG_IL_TO_NATIVE_MAP estructuras.

Observaciones

GetILToNativeMapping2 es similar al método ICorProfilerInfo::GetILToNativeMapping , salvo que permitirá al generador de perfiles especificar el identificador de la función recompilada en futuras versiones.

Nota:

El método ICorProfilerFunctionControl::SetILInstrumentedCodeMap no se implementa en .NET Framework 4.5, por lo que las funciones que se han vuelto a compilar JIT no pueden tener una asignación IL a nativa que difiere de la función compilada originalmente. Por lo tanto, GetILToNativeMapping2 no se puede llamar a con un identificador jiT recompilado distinto de cero en .NET Framework 4.5.

El GetILToNativeMapping2 método devuelve una matriz de COR_DEBUG_IL_TO_NATIVE_MAP estructuras. Para transmitir que determinados intervalos de instrucciones nativas corresponden a regiones especiales de código (por ejemplo, el prólogo), una entrada de la matriz puede tener su ilOffset campo establecido en un valor de la enumeración CorDebugIlToNativeMappingTypes .

Después GetILToNativeMapping2 de la devolución, debe comprobar que el map búfer era lo suficientemente grande como para contener todas las COR_DEBUG_IL_TO_NATIVE_MAP estructuras. Para ello, compare el valor de cMap con el valor del pcMap parámetro . Si el pcMap valor, cuando se multiplica por el tamaño de una COR_DEBUG_IL_TO_NATIVE_MAP estructura, es mayor que cMap, asigna un búfer mayor map , actualiza cMap con el nuevo tamaño mayor y vuelve a llamar a GetILToNativeMapping2 .

Como alternativa, puede llamar GetILToNativeMapping2 primero con un búfer de longitud map cero para obtener el tamaño correcto del búfer. A continuación, puede establecer el tamaño del búfer en el valor devuelto en pcMap y volver a llamar a GetILToNativeMapping2 .

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: Disponible desde la versión 4.5

Consulte también