Método de ICorProfilerInfo::SetILInstrumentedCodeMap
Define um mapa de código da função especificada usando as entradas de mapa do especificadas Microsoft intermediate language (MSIL).
Observação
No.NET Framework versão 2.0, chamando SetILInstrumentedCodeMap em um FunctionID que representa um genérico funcionar em um domínio de aplicativo específico afetará todas as instâncias dessa função no domínio de 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 identificação da função para o qual definir o mapa de código.fStartJit
[in] Um valor Boolean que indica se a chamada para o SetILInstrumentedCodeMap método é o primeiro para um determinado FunctionID. Definir fStartJit para true na primeira chamada para SetILInstrumentedCodeMap para um determinado FunctionIDe false a partir de então.cILMapEntries
[in] O número de elementos de cILMapEntries matriz.rgILMapEntries
[in] Uma matriz de COR_IL_MAP estruturas, cada uma das quais Especifica um deslocamento MSIL.
Comentários
Um gerador de perfil insere freqüentemente instruções dentro do código de origem de um método para instrumentar o método (por exemplo, para notificar quando uma linha de determinada fonte é atingida). SetILInstrumentedCodeMappermite que um profiler mapear de instruções MSIL originais para suas novas localizações. Um gerador de perfil pode usar o ICorProfilerInfo::GetILToNativeMapping método para obter o deslocamento MSIL original para um deslocamento nativo determinado.
O depurador assumirá que a cada deslocamento antigo se refere a um MSIL deslocamento dentro do código MSIL de original, sem modificações, e que cada novo deslocamento se refere ao deslocamento MSIL dentro do código novo, instrumentado. O mapa deve ser classificado em ordem crescente. Para revisão para funcionar corretamente, siga estas diretrizes:
Não Reordene o código MSIL instrumentado.
Não remova o código MSIL original.
Inclua entradas para todos os pontos de seqüência do arquivo de banco de dados (PDB) do programa no mapa. O mapa não interpolar entradas falta. Assim, considerando o mapa a seguir:
(0 antigo, 0 novo)
(5 antigo, 10 novos)
(9 antigo, 20 novos)
Um antigo deslocamento de 0, 1, 2, 3 ou 4 será mapeado para o novo deslocamento de 0.
Um deslocamento antigo de 5, 6, 7 ou 8 será mapeado para o deslocamento de 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 de 0.
Um novo deslocamento de 10, 11, 12, 13, 14, 15, 16, 17, 18 ou 19 será mapeado para o deslocamento antigo 5.
Um novo deslocamento de 20 ou maior será mapeado para deslocamento antigo 9.
Requisitos
Plataformas: Consulte Requisitos de sistema do .NET Framework.
Cabeçalho: Corprof. idl, CorProf.h
Biblioteca: CorGuids.lib
.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1