Partilhar via


Alterações de código e limitações suportadas (C++)

Editar e continuar para Visual C++ trata a maioria dos tipos de alterações de código. Porém, algumas alterações não podem ser aplicadas durante a execução do programa. Para aplicar essas alterações sem suporte, você deverá parar a execução e criar uma versão atualizada do código.

Consulte Editar e continuar (Visual C++) para obter informações sobre como trabalhar com editar e continuar do C++ no Visual Studio.

Neste artigo

Alterações sem suporte

Cenários sem suporte

Limitações de vinculação

Limitações de cabeçalho pré-compilado

Limitações de atributos IDL

Alterações sem suporte

As seguintes alterações de C/C++ não podem ser aplicadas durante uma sessão de depuração:

  • A maioria das alterações aos dados globais ou estáticos.

  • As alterações nos executáveis que são copiados de outro computador e não são criados localmente.

  • As alterações para um tipo de dados que afeta o layout de um objeto, como, por exemplo, membros de dados de uma classe.

  • Adicionando mais de 64k bytes do novo código ou dados.

  • Adicionando variáveis que exigem um construtor em um ponto antes do ponteiro de instrução.

  • As alterações que afetam o código que exigem a inicialização de tempo de execução.

  • Adicionar manipuladores de exceção, em alguns casos.

  • Alterações aos arquivos de recurso.

  • Alterações ao código em arquivos somente leitura.

  • Alterações ao código sem um arquivo PDB correspondente.

  • Alterações ao código que não tem arquivo de objeto.

Se você executar uma destas alterações e tentar aplicar alterações de código, um erro ou uma mensagem de aviso serão exibidos na janela Saída.

  • Editar e Continuar não atualiza bibliotecas estáticas. Se você fizer uma alteração em uma biblioteca estática, a execução continuará com a versão antiga e nenhum aviso será emitido.

Cenários sem suporte

Editar e Continuar para C/C++ está indisponível nos seguintes cenários de depuração:

  • Depurando aplicativos nativos compilados com/Zo (Enhance Optimized Debugging)

  • Depuração nos aplicativos ou componentes da Windows Store.

  • Depuração no Windows 98.

  • Depuração de modo misto (nativo/gerenciado).

  • Depuração de JavaScript.

  • Depuração de SQL.

  • Depurando um arquivo de despejo.

  • Editando o código após uma exceção sem tratamento, quando a opção de Voltar para a pilha de chamadas em exceções não tratadas não está selecionada.

  • Depurar um aplicativo usando anexar a em vez de executar o aplicativo escolhendo iniciar sobre o depurar menu.

  • Depurando código otimizado.

  • Depurando uma versão antiga do código depois que uma nova versão não é compilada devido a erros de compilação.

Voltar ao inícioNeste artigo

Limitações de vinculação

Opções do vinculador que desativam Editar e continuar | Auto revinculação limitações

Opções do vinculador que desativam Editar e continuar

As opções de vinculador a seguir desabilitam Editar e Continuar:

  • A configuração de /OPT:REF, /OPT:ICF ou /INCREMENTAL:NO desabilita Editar e Continuar com o seguinte aviso:

    LINK : warning LNK4075: ignoring /EDITANDCONTINUE due to /OPT

    especificação

  • A configuração de /ORDER, /RELEASE ou /FORCE desabilita Editar e Continuar com esse aviso:

    LINK : warning LNK4075: ignoring /INCREMENTAL due to /option

    especificação

  • Definir qualquer opção que evite a criação de um arquivo de banco de dados do programa (.pdb) desabilita Editar e Continuar sem aviso específico.

Auto revinculação limitações

Por padrão, Editar e Continuar vincula novamente o programa ao final de uma sessão de depuração para criar um executável atualizado.

Editar e Continuar não pode vincular o programa novamente se você o depurá-lo a partir de um local diferente do local de compilação original. Uma mensagem informa que você precisa recompilar manualmente.

Editar e Continuar não recompila bibliotecas estáticas. Se você fizer alterações em uma biblioteca estática usando editar e continuar, você precisa recompilar manualmente os aplicativos de biblioteca e vincular novamente usá-lo.

Editar e Continuar não invoca as etapas personalizadas de compilação. Se o seu programa usa etapas personalizadas de compilação, recompile manualmente de modo que as etapas personalizadas de compilação possam ser invocadas. Nesse caso, você pode desabilitar nova vinculação após Editar e Continuar para assegurar que seja solicitado a fazer a recompilação manualmente.

Para desativar a nova vinculação após Editar e Continuar

  1. No menu de Depurar, escolha Opções e Configurações.

  2. No opções caixa de diálogo de depuração nó e selecione o editar e continuar nó.

  3. Desmarque a caixa de seleção Vincular novamente alterações de código após a depuração.

Voltar ao inícioNeste artigo

Limitações de cabeçalho pré-compilado

Por padrão, Editar e Continuar carrega e processa cabeçalhos pré-compilados no plano de fundo para acelerar o processamento de alterações de código. O carregamento de cabeçalhos pré-compilados requer a alocação de memória física, o que pode ser um problema se você estiver compilando em um computador com RAM limitada. Você pode determinar se isso pode ser um problema usando o Gerenciador de tarefas do Windows para determinar a quantidade de memória física disponível enquanto você está depurando. Se esse valor for maior que o tamanho dos cabeçalhos pré-compilados, Editar e Continuar não terá problemas. Se o valor for menor que o tamanho dos cabeçalhos pré-compilados, você pode impedir que Editar e Continuar carregue cabeçalhos pré-compilados no plano de fundo.

Para desabilitar o carregamento em segundo plano de cabeçalhos pré-compilados para Editar e Continuar

  1. No menu de Depurar, escolha Opções e Configurações.

  2. No opções caixa de diálogo de depuração nó e selecione o editar e continuar nó.

  3. Desmarque a caixa de seleção Permitir Pré-Compilação.

Voltar ao inícioNeste artigo

Limitações de atributos IDL

Editar e Continuar não regeneram arquivos IDL (definição da interface). Consequentemente, as alterações aos atributos de IDL não serão refletidas ao depurar. Para ver o resultado das alterações em atributos IDL, você deve parar a depuração e recompilar seu aplicativo. Editar e Continuar não gera um erro ou um aviso se os atributos de IDL tiverem sido alterados. Para obter mais informações, consulte Atributos de IDL.

Voltar ao inícioNeste artigo

Consulte também

Outros recursos

Editar e continuar (Visual C++)