Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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