Partilhar via


Método ICorProfilerInfo::SetILInstrumentedCodeMap

Define um MAP de código para a função especificada usando as entradas de MAP do especificado Microsoft intermediate linguagem (MSIL).

ObservaçãoObservação:

Em o Chamando o .NET estrutura versão 2.0, SetILInstrumentedCodeMap em um FunctionID que representa um genérico funciona em um domínio de aplicativo específico afetará todas as instâncias dessa função no domínio do aplicativo.

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

Parâmetros

  • functionId
    [in] A ID da função para o qual conjunto o MAP de código.

  • fStartJit
    [in] Um valor booliano que indica se a telefonar para o SetILInstrumentedCodeMap método é o primeiro para um determinado FunctionID. conjunto fStartJit para true na primeira telefonar para SetILInstrumentedCodeMap para um determinado FunctionIDe false Daí em diante.

  • cILMapEntries
    [in] O número de elementos no cILMapEntries matriz.

  • rgILMapEntries
    [in] Uma matriz de COR_IL_MAP estruturas, cada uma das quais Especifica um deslocamento MSIL.

Comentários

Um criador de perfil insere com freqüência instruções no código-fonte de um método para instrumentar esse método (por exemplo, para notificar quando uma determinada fonte linha for atingida). SetILInstrumentedCodeMap permite que o criador de perfil mapear as instruções MSIL originais para suas novas localizações. Um criador de perfil pode usar o ICorProfilerInfo::GetILToNativeMappingmétodo para obter o deslocamento MSIL original para um determinado deslocamento nativo.

O depurador presumirá que cada deslocamento antigo se refere a um MSIL deslocamento dentro do código MSIL original, sem modificações, e que cada novo deslocamento refere-se ao deslocamento MSIL dentro do código instrumentado, novo. O MAP deve ser classificado em ordem crescente. Para revisão para funcionar corretamente, siga estas diretrizes:

  • Não reordene código MSIL instrumentado.

  • Não remova o código MSIL original.

  • Inclua entradas para todos os pontos de sequência do arquivo de programa (PDB) de banco de dados no MAP. O MAP não interpolar entradas falta. Dessa forma, dado o MAP a seguir:

    (0 antigo, 0 novo)

    (5 antigo, 10 novo)

    (9 antigo, 20 novo)

    • Um antigo deslocamento de 0, 1, 2, 3 ou 4 será mapeado para o novo deslocamento 0.

    • Um deslocamento de 5, 6, 7 ou 8 antigo será mapeado para deslocamento novo 10.

    • Um deslocamento antigo de 9 ou superior será mapeado para o novo deslocamento de 20.

    • Um novo deslocamento de 0, 1, 2, 3, 4, 5, 6, 7, 8 ou 9 será mapeado para o antigo deslocamento 0.

    • Um novo deslocamento de 10, 11, 12, 13, 14, 15, 16, 17, 18 ou 19 será mapeado para o antigo deslocamento 5.

    • Um novo deslocamento de 20 ou mais recente será mapeado para deslocamento antigo 9.

Requisitos

Plataformas: See Requisitos de sistema do .NET framework.

Cabeçalho: CorProf.idl

Biblioteca: CorGuids.lib

.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1

Consulte também

Referência

Interface ICorProfilerInfo