Compartir a través de


ICorProfilerInfo::SetILInstrumentedCodeMap (Método)

Establece un mapa de código para la función especificada mediante el uso de las entradas de mapa del lenguaje intermedio de Microsoft (MSIL) especificadas.

NotaNota

En .NET Framework 2.0, si se llama a SetILInstrumentedCodeMap en un FunctionID que representa una función genérica de un dominio de aplicación en particular, se verán afectadas todas las instancias de esa función en el dominio de aplicación.

HRESULT SetILInstrumentedCodeMap(
    [in]  FunctionID functionId,
    [in]  BOOL       fStartJit,
    [in]  ULONG      cILMapEntries,
    [in, size_is(cILMapEntries)] COR_IL_MAP rgILMapEntries[]);

Parámetros

  • functionId
    [in] Id. de la función para el que se establece el mapa de código.

  • fStartJit
    [in] Valor booleano que indica si la llamada al método SetILInstrumentedCodeMap es la primera para un FunctionID en particular. Establezca fStartJit en true en la primera llamada a SetILInstrumentedCodeMap para un FunctionID determinado y en false a partir de ese momento.

  • cILMapEntries
    [in] Número de elementos contenidos en la matriz cILMapEntries.

  • rgILMapEntries
    [in] Matriz de estructuras COR_IL_MAP, cada una de las cuales especifica un desplazamiento de MSIL.

Comentarios

Un generador de perfiles suele insertar instrucciones en el código fuente de un método para instrumentarlo (por ejemplo, para notificar en qué momento se llega a una línea de código fuente). SetILInstrumentedCodeMap permite que un generador de perfiles asigne las instrucciones de MSIL originales a sus nuevas ubicaciones. Un generador de perfiles puede usar el método ICorProfilerInfo::GetILToNativeMapping para obtener el desplazamiento de MSIL original de un desplazamiento nativo dado.

El depurador presupondrá que los desplazamientos anteriores hacen referencia a un desplazamiento de MSIL del código MSIL original y sin modificar, así como que los desplazamientos nuevos hacen referencia al desplazamiento de MSIL del nuevo código instrumentado. El mapa se debe ordenar en orden ascendente. Para trabajar correctamente y paso a paso, siga estas instrucciones:

  • No reordene el código de MSIL instrumentado.

  • No quite el código de MSIL original.

  • Incluya en la asignación las entradas de todos los puntos de secuencias del archivo de base de datos de programa (PDB). El mapa no interpola las entradas que falten. Por tanto, dado el mapa siguiente:

    (0 anterior, 0 nuevo)

    (5 anterior, 10 nuevo)

    (9 anterior, 20 nuevo)

    • Un desplazamiento anterior de 0, 1, 2, 3 o 4 se asignará al nuevo desplazamiento de 0.

    • Un desplazamiento anterior de 5, 6, 7 u 8 se asignará al nuevo desplazamiento de 10.

    • Un desplazamiento anterior de 9 o más se asignará al nuevo desplazamiento de 20.

    • Se asignará un nuevo desplazamiento de 0, 1, 2, 3, 4, 5, 6, 7, 8 ó 9 al anterior desplazamiento de 0.

    • Se asignará un nuevo desplazamiento de 10, 11, 12, 13, 14, 15, 16, 17, 18 ó 19 al anterior desplazamiento de 5.

    • Un desplazamiento nuevo de 20 o más se asignará al anterior desplazamiento de 9.

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1

Vea también

Referencia

ICorProfilerInfo (Interfaz)