Compartilhar via


Método ICorDebugModule2::ApplyChanges

Aplica as alterações nos metadados e as alterações no código Microsoft intermediate linguagem (MSIL) para o processo em execução.

HRESULT ApplyChanges (
    [in] ULONG                       cbMetadata,
    [in, size_is(cbMetadata)] BYTE   pbMetadata[],
    [in] ULONG                       cbIL,
    [in, size_is(cbIL)] BYTE         pbIL[]
);

Parâmetros

  • cbMetadata
    [in] dimensionar em bytes, dos metadados delta.

  • pbMetadata
    [in] Buffer que contém metadados delta. O endereço do buffer é retornado do IMetaDataEmit2::SaveDeltaToMemory método.

    Os endereços virtual relativos (RVAs) nos metadados devem estar em relação ao início do código MSIL.

  • cbIL
    [in] dimensionar em bytes, do código MSIL delta.

  • pbIL
    [in] Buffer que contém o código MSIL atualizado.

Comentários

The pbMetadata parâmetro está em um formato de metadados delta especiais (sistema autônomo saída IMetaDataEmit2::SaveDeltaToMemory). pbMetadata usa metadados anterior sistema autônomo base e descreve sistema autônomo alterações individuais para aplicar a essa base.

Em contraste, a pbIL[] parâmetro contém o MSIL novo para o método atualizado e destinado a substituir completamente o MSIL para o método anterior

Quando o delta MSIL e os metadados foram criados na memória do depurador, o depurador chama ApplyChanges para enviar as alterações para o common linguagem tempo de execução (CLR). O tempo de execução atualiza suas tabelas de metadados, coloca o MSIL novo no processo e configura uma compilação de (JIT) just-in-time do novo MSIL. Quando as alterações tiverem sido aplicadas, o depurador deve telefonar IMetaDataEmit2::ResetENCLog para se preparar para a próxima sessão de edição. O depurador pode então continuar o processo.

Sempre que o depurador chama ApplyChanges em um módulo que tem metadados delta, ele também deve chamar IMetaDataEmit::ApplyEditAndContinue com os mesmos metadados delta em todas as cópias dos metadados do módulo, exceto para a cópia usada para emitir as alterações. Se uma cópia dos metadados, de alguma forma, ficar fora de sincronia com metadados real, o depurador sempre pode jogar fora dessa cópia e obter uma nova cópia.

Se o ApplyChanges método falhar, o depurar sessão está em estado inválido e deve ser reiniciado.

Requisitos

Plataformas: See Requisitos de sistema do .NET framework.

Cabeçalho: CorDebug.idl

Biblioteca: CorGuids.lib

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

Consulte também

Referência

Interface ICorDebugModule2

Interface ICorDebugModule