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.
Neste 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
No menu de Depurar, escolha Opções e Configurações.
No opções caixa de diálogo de depuração nó e selecione o editar e continuar nó.
Desmarque a caixa de seleção Vincular novamente alterações de código após a depuração.
Neste 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
No menu de Depurar, escolha Opções e Configurações.
No opções caixa de diálogo de depuração nó e selecione o editar e continuar nó.
Desmarque a caixa de seleção Permitir Pré-Compilação.
Neste 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.
Neste artigo