Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Durante a depuração, você pode mover manualmente o ponteiro de execução para alterar a próxima instrução que será executada em seguida. Mover o ponteiro é útil para situações como ignorar código que contém um bug conhecido e é um recurso mais avançado do depurador.
Alterar o fluxo de execução
Quando o depurador é pausado, uma seta amarela na margem do código-fonte ou da janela Desmontagem marca o local da instrução que será executada em seguida. Você pode alterar a próxima instrução que será executada movendo essa seta. Você pode ignorar o código ou retornar a uma linha anterior.
Se você quiser alterar a próxima instrução que será executada, o depurador deverá estar no modo de interrupção. No código-fonte ou na janela Desmontar, arraste a seta amarela para uma linha diferente ou clique com o botão direito do mouse na linha que você deseja executar em seguida e selecione Definir Próxima Instrução.
O contador do programa salta diretamente para o novo local. As instruções entre os pontos de execução antigos e novos não são executadas. Mas se você mover o ponto de execução para trás, as instruções de intervenção não serão desfeitas.
Cuidado
- Mover a próxima instrução para outra função ou escopo geralmente causa corrupção na pilha de chamadas, o que resulta em um erro ou exceção de tempo de execução. Se você tentar mover a próxima instrução para outro escopo, o depurador emitirá um aviso e oferecerá uma oportunidade de cancelar a operação.
- No Visual Basic, você não pode mover a próxima instrução para outro escopo ou função.
- No C++nativo, se você tiver verificações de runtime habilitadas, definir a próxima instrução poderá causar uma exceção quando a execução atingir o final do método.
- Quando Editar e Continuar estiver habilitado, Set Next Statement falhará se você tiver feito edições que Editar e Continuar não puder remapear imediatamente. Essa situação pode ocorrer, por exemplo, se você tenha editado o código em um bloco de captura. Quando isso acontece, uma mensagem de erro informa que a operação não tem suporte.
- No código gerenciado, você não poderá mover a próxima instrução se:
- A próxima instrução está em um método diferente da instrução atual.
- A depuração foi iniciada por Just-In-Time Debugging.
- Um desenrolamento de pilha de chamadas está em andamento.
- Uma exceção System.StackOverflowException ou System.Threading.ThreadAbortException foi gerada.