Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Durante a depuração, pode mover manualmente o ponteiro de execução para alterar a próxima instrução que será executada a seguir. Mover o ponteiro é útil em situações, como ao saltar código que contém um erro conhecido, e constitui uma funcionalidade mais avançada do depurador.
Alterar o fluxo de execução
Quando o depurador está pausado, uma seta amarela na margem do código-fonte ou da janela de Desmontagem marca a localização da instrução que será executada a seguir. Pode alterar a próxima declaração que será executada deslocando esta seta. Podes saltar código ou voltar a uma linha anterior.
Se quiseres alterar a próxima instrução que irá executar, o depurador tem de estar em modo de interrupção. No código-fonte ou na janela de Desmontagem , arraste a seta amarela para outra linha, ou clica com o botão direito na linha que queres executar a seguir e seleciona Definir Instrução Próxima.
O contador de programa salta diretamente para a nova localização. As instruções entre os pontos de execução antigo e novo não são executadas. Mas se move o ponto de execução para trás, as instruções intermediárias não são desfeitas.
Atenção
- Mover a próxima instrução para outra função ou âmbito geralmente causa corrupção da call stack, resultando em um erro ou exceção durante a execução. Se tentares mover a próxima instrução para outro escopo, o depurador dá-te um aviso e uma oportunidade de cancelar a operação.
- No Visual Basic, não podes mover a próxima instrução para outro escopo ou função.
- No C++ nativo, se tiveres as verificações de tempo de execução ativadas, definir a próxima instrução pode causar uma exceção quando a execução chegar ao fim do método.
- Quando Editar e Continuar está ativado, Definir Próxima Instrução falha se tiver feito edições que Editar e Continuar não conseguir remapear imediatamente. Esta situação pode ocorrer, por exemplo, se tiver editado código num bloco de captura. Quando isto acontece, uma mensagem de erro indica que a operação não é suportada.
- No código gerido, não pode mover a próxima instrução se:
- A próxima instrução está num método diferente da atual.
- A depuração foi iniciada pela Just-In-Time Debugging.
- Está em curso um desmantelamento de stack de chamadas.
- Uma exceção System.StackOverflowException ou uma exceção System.Threading.ThreadAbortException foi gerada.