Partilhar via


Editar e continuar (C++)

Você pode usar o Hot Reload, anteriormente chamado Edit and Continue, em projetos C++. Para obter informações sobre as limitações do recurso, consulte Alterações de código suportadas (C++).

Você pode usar Editar e Continuar em projetos C++. Para obter mais informações sobre as limitações de Editar e Continuar, consulte Alterações de código suportadas (C++).

A opção de compilador /Zo (Enhance Optimized Debugging) adiciona informações adicionais aos arquivos .pdb (símbolo) para binários compilados sem a opção /Od (Disable (Debug)) .

A /Zo opção desativa Editar e Continuar, conforme descrito em Como: Depurar código otimizado.

Ativar ou desativar o Hot Reload

Talvez você queira desabilitar a invocação automática do Hot Reload se estiver fazendo edições no código que não deseja aplicar durante a sessão de depuração atual. Você pode reativar o Hot Reload automático conforme necessário.

Importante

Para obter as configurações de compilação necessárias e outras informações sobre compatibilidade de recursos, consulte C++ Edit and Continue in Visual Studio 2015 Update 3.

  1. Se você estiver atualmente em uma sessão de depuração, pare a depuração (Shift + F5).
  1. Abra o painelOpções de > e expanda a seção All Settings>Debugging.NET>/C++ Hot Reload.

  2. Para habilitar o Hot Reload ao iniciar com o depurador anexado (F5), marque a caixa de seleção Enable Hot Reload no painel direito.

    Depois de selecionar a caixa de seleção, você pode configurar as seguintes opções:

    Opção Hot Reload Description Predefinição
    Aplicar automaticamente as alterações ao continuar (somente nativo) Aplica alterações quando você continua com o depurador anexado (F5). Ativado(a)
    Avisar sobre código obsoleto Ativa um aviso quando o depurador encontra um código que foi modificado, mas não pode ser aplicado imediatamente. Ativado(a)
    Ativar quando não estiver depurando Ativa o Hot Reload ao iniciar sem o depurador conectado (Ctrl + F5). Ativado(a)
    Aplicar ao salvar arquivo Aplica alterações quando o arquivo é salvo. Disabled
    Verbozidade de registos Defina o nível de registo quando o Hot Reload estiver ativado. Escolha entre Mínimo, Detalhado ou Diagnóstico. Mínimo
  1. Abra a caixa de diálogo Ferramentas Opções e expanda a secção Depuração .NET/C++ Hot Reload.

  2. Selecione uma ou todas as seguintes opções para ativar o recurso:

    • Ativar Hot Reload: Ativa o Hot Reload ao iniciar com o depurador anexado (F5).

    • Ativar Hot Reload ao iniciar sem depuração: Ativa Hot Reload ao iniciar sem o depurador anexado (Ctrl + F5).

    • Ativar Hot Reload ao Salvar Arquivo: Habilita Hot Reload quando o arquivo é salvo.

    • Verbosidade do log: defina o nível de registo quando o Hot Reload estiver habilitado. Escolha entre Mínimo (padrão), Detalhado ou Diagnóstico.

    A alteração dessas configurações afeta todos os projetos em que você trabalha. Você não precisa reconstruir seu aplicativo depois de alterar uma configuração. Se compilares a tua aplicação a partir da linha de comandos ou de um makefile, mas fizeres a depuração no ambiente do Visual Studio, ainda podes usar "Editar e Continuar" se definires a opção /ZI.

  3. Selecione OK.

Ativar ou desativar Editar e Continuar

Talvez você queira desabilitar a invocação automática de Editar e Continuar se estiver fazendo edições no código que não deseja aplicar durante a sessão de depuração atual. Você pode reativar a opção Editar e Continuar automaticamente, conforme necessário.

Importante

Para obter as configurações de compilação necessárias e outras informações sobre compatibilidade de recursos, consulte C++ Edit and Continue in Visual Studio 2015 Update 3.

  1. Se você estiver atualmente em uma sessão de depuração, pare a depuração (Shift + F5).

  2. Abra a caixa de diálogo Ferramentas>Opções e expanda a seção Depuração>Geral.

  3. Para habilitar Editar e Continuar, marque a caixa de seleção Habilitar Editar e Continuar . Para desativar a opção, desmarque a caixa de seleção.

  4. No grupo Editar e Continuar , marque ou desmarque a caixa de seleção Habilitar Edição Nativa e Continuar .

    Alterar essa configuração afeta todos os projetos em que você trabalha. Você não precisa reconstruir seu aplicativo depois de alterar essa configuração. Se compilares a tua aplicação a partir da linha de comandos ou de um makefile, mas fizeres a depuração no ambiente do Visual Studio, ainda podes usar "Editar e Continuar" se definires a opção /ZI.

Aplicar alterações de código explicitamente

Em C++, Editar e Continuar podem aplicar alterações de código de duas maneiras. As alterações de código podem ser aplicadas implicitamente, quando você escolhe um comando de execução, ou explicitamente, usando o comando Aplicar alterações de código .

Quando você aplica alterações de código explicitamente, seu programa permanece no modo de interrupção - nenhuma execução ocorre.

  • Para aplicar alterações de código explicitamente, no menu Depurar , escolha Aplicar alterações de código.

Como parar as alterações de código

Enquanto Editar e Continuar estiver no processo de aplicação de alterações de código, você pode interromper a operação.

Para parar de aplicar alterações de código:

  • No menu Depurar , escolha Parar de aplicar alterações de código.

    Este item de menu é visível somente quando as alterações de código estão sendo aplicadas.

    Se você escolher essa opção, nenhuma das alterações de código será confirmada.

Redefinir o ponto de execução

Algumas alterações de código podem fazer com que o ponto de execução seja movido para um novo local quando o Edit and Continue aplica as alterações. O recurso coloca o ponto de execução com a maior precisão possível, mas os resultados podem não estar corretos em todos os casos.

Em C++, uma caixa de diálogo informa quando o ponto de execução é alterado. Você deve verificar se a localização está correta antes de continuar a depurar. Se não estiver correto, use o comando set Next Statement . Para obter mais informações, consulte Definir a próxima instrução a ser executada.

Trabalhar com código obsoleto

Em alguns casos, Editar e Continuar não pode aplicar alterações de código ao executável imediatamente, mas pode ser capaz de aplicar as alterações de código mais tarde se você continuar a depuração. Esse cenário acontece se você editar uma função que chama a função atual ou se você adicionar mais de 64 bytes de novas variáveis a uma função na pilha de chamadas.

Nesses casos, o depurador continua executando o código original até que as alterações possam ser aplicadas. O código obsoleto aparece como uma janela de arquivo de origem temporária em uma janela de código-fonte separada, com um título como enc25.tmp. A fonte editada continua a aparecer na janela de origem original. Se você tentar editar o código obsoleto, uma mensagem de aviso será exibida.