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.
Observação
A depuração de instantâneo foi descontinuada e deixará de estar disponível nas versões mais recentes do Visual Studio 2022 e versões posteriores. Embora não haja uma substituição exata, existem outras ferramentas que podem fornecer diagnósticos úteis:
A funcionalidade de depuração de viagem no tempo no Visual Studio Enterprise pode gravar um aplicativo web que está a ser executado numa máquina virtual (VM) do Azure e, em seguida, reconstruir e reproduzir com precisão o percurso de execução. A Time Travel Debugging (TTD) foi adicionada ao Visual Studio 2019 Enterprise como uma funcionalidade em pré-visualização e agora está integrada no Depurador de Instantâneo do Visual Studio.
A depuração de viagem no tempo permite retroceder e reproduzir cada linha de código quantas vezes quiser. Este procedimento pode ajudá-lo a isolar e identificar problemas que podem ocorrer apenas em ambientes de produção.
Capturar uma gravação de depuração com viagem no tempo não interrompe o seu aplicativo, mas introduz uma sobrecarga considerável ao processo de execução. A quantidade de lentidão depende de fatores como o tamanho do processo e o número de threads ativos.
Neste tutorial, você:
- Inicie o depurador de instantâneo com TTD.
- Defina um ponto de referência e registre uma gravação de uma viagem no tempo.
- Depurar a gravação de viagem através do tempo.
Pré-requisitos
Visual Studio Enterprise 2019 ou superior com a carga de trabalho de desenvolvimento do Azure instalada.
No instalador do Visual Studio, verifique se Depurador de instantâneo está selecionado em Depuração e teste na guia Componentes individuais .
Um aplicativo Web ASP.NET (AMD64) em execução no .NET Framework 4.8 ou posterior em uma VM do Azure.
Anexar o depurador de instantâneo
Abra o projeto da aplicação que pretendes depurar.
Importante
Certifique-se de abrir a mesma versão do código-fonte que é publicada na sua VM do Azure.
Escolha Depurar > Anexar Depurador de Instantâneo. Selecione a VM do Azure na qual seu aplicativo Web está implantado e uma conta de Armazenamento do Azure e selecione Anexar.
Importante
Na primeira vez que você selecionar Anexar Depurador de Instantâneo, o IIS será reiniciado automaticamente na VM.
O Visual Studio agora está no modo de depuração por instantâneo.
Observação
A extensão de site do Application Insights também oferece suporte à depuração instantânea. Se você receber uma mensagem de erro de extensão de site desatualizada , consulte Atualização de extensão de site para obter detalhes de atualização.
Os metadados dos módulos não são ativados inicialmente. Navegue até o aplicativo Web para carregar os módulos.
A janela Módulos mostra quando todos os módulos são carregados para a VM do Azure. Para abrir a janela Módulos, selecione Depurar>Módulos do Windows>.
Depois que todos os módulos forem carregados, você poderá selecionar o botão Iniciar coleção na barra de ferramentas do Visual Studio.
Definir um ponto de encaixe
Para definir um ponto de parada, no editor de código, clique na calha esquerda ao lado de um método de interesse. Certifique-se de saber que o código funciona.
Clique com o botão direito do rato no ícone da esfera oca do ponto de captura e escolha Ações para mostrar a janela Definições de Instantâneo.
Tire o instantâneo
Selecione Iniciar Coleção na barra de ferramentas para ativar a marcação.
Quando você ativa o snappoint, ele captura um instantâneo quando a linha de código em que ele é colocado é executada. A execução pode exigir uma solicitação no servidor. Para forçar o snappoint a bater, vá para a visualização do navegador do seu site e execute as ações necessárias.
Por padrão, o snappoint captura apenas um instantâneo. Depois de capturar um instantâneo, o snappoint desliga-se. Se quiser capturar outro instantâneo no snappoint, você pode ativá-lo novamente selecionando Atualizar coleção.
Corrigir uma gravação de viagem no tempo
Quando o ponto de ajuste é atingido, um instantâneo aparece na janela Ferramentas de Diagnóstico . Se esta janela não estiver aberta, abra-a selecionando Depurar>Windows>Mostrar Ferramentas de Diagnóstico.
Selecione View Snapshot para abrir a gravação de viagem no tempo no editor de códigos.
Você pode executar todas as linhas de código que a depuração de viagem no tempo gravou usando os botões Continuar e Reverter Continuar .
Você também pode usar a barra de ferramentas Depurar para Mostrar a próxima instrução, Entrar, Passar por cima, Sair, Retroceder e entrar, Retroceder e passar por cima, e Retroceder e sair.
Você também pode usar as janelas Locais, Vigilância e Pilha de Chamadas do Visual Studio e avaliar expressões.
O site ainda está ativo e os usuários finais não são afetados pela atividade de depuração de viagens no tempo.
Para obter mais informações e ajuda, consulte Resolução de problemas e questões conhecidas para debugging de instantâneos no Visual Studio.
Definir um ponto de interrupção condicional
Se for difícil recriar um estado específico na sua aplicação, considere usar um ponto de interrupção condicional. Os snappoints condicionais ajudam a evitar a coleta de uma gravação até que o aplicativo entre em um estado desejado, como quando uma variável tem um valor específico. Para obter mais informações sobre como definir condições com base em expressões, filtros ou contagens de acertos, consulte Condições de ponto de interrupção.
Conteúdo relacionado
Neste tutorial, você aprendeu como usar o Depurador de Instantâneo para coletar uma gravação de viagem no tempo para VMs do Azure. Saiba mais sobre a depuração de instantâneos: