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.
Observação
O debug de instantâneo foi tornado obsoleto e não estará disponível nas versões do Visual Studio 2022 e versões posteriores. Embora não haja uma substituição exata, há outras ferramentas que podem fornecer diagnósticos úteis:
A depuração temporal no Visual Studio Enterprise pode gravar um aplicativo web em execução em uma máquina virtual (VM) do Azure e, em seguida, reconstruir e reproduzir com precisão o processo de execução. A TTD (Depuração de Viagem no Tempo) foi adicionada ao Visual Studio 2019 Enterprise como um recurso de visualização e agora está integrada ao Depurador de Instantâneos do Visual Studio.
A depuração por viagem no tempo permite voltar e reproduzir todas as linhas de código quantas vezes desejar. Este procedimento pode ajudá-lo a isolar e identificar problemas que podem ocorrer somente em ambientes de produção.
Capturar um registro de depuração de viagem no tempo não interrompe seu aplicativo, mas adiciona uma sobrecarga significativa durante a 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âneos com TTD.
- Defina um snappoint e colete uma gravação de viagem no tempo.
- Depure a gravação de viagem no 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 o Depurador de Instantâneos está selecionado em Depuração e teste na guia Componentes Individuais .
Um aplicativo Web amd64 (ASP.NET) em execução no .NET Framework 4.8 ou posterior em uma VM do Azure.
Anexar o depurador de instantâneo
Abra o projeto do aplicativo que você deseja depurar.
Importante
Certifique-se de abrir a mesma versão do código-fonte que está publicada na VM do Azure.
Escolha >. 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âneos, o IIS será reiniciado automaticamente em sua VM.
O Visual Studio agora está no modo de depuração de instantâneos.
Observação
A extensão de site do Application Insights também oferece suporte à Depuração de Snapshot. Se você receber uma mensagem de erro de extensão de site desatualizada, consulte Detalhes de Atualização de Extensão de Site para obter informações sobre a atualização.
Os metadados dos módulos não são inicialmente ativados. 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>Windows>Módulos.
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 snappoint
Para definir um snappoint, no editor de código, clique na sarjeta esquerda ao lado de um método no qual você está interessado. Certifique-se de que você saiba que o código está sendo executado.
Clique com o botão direito do mouse no ícone de esfera oca do snappoint e escolha Ações para mostrar a janela Configurações de Instantâneo.
Tirar o instantâneo
Selecione Iniciar Coleção na barra de ferramentas para ativar o snappoint.
Ao ativar o snappoint, ele faz uma captura quando a linha de código em que está colocado é executada. A execução pode exigir uma solicitação em seu servidor. Para forçar o snappoint a ser atingido, vá para o modo de exibição do navegador do seu site e execute as ações necessárias.
Por padrão, o snappoint captura apenas um instantâneo. Depois que o snappoint captura um instantâneo, ele é desativado. Se você quiser capturar outro instantâneo no snappoint, poderá ativar novamente o snappoint selecionando Coleção de Atualizações.
Analisar uma gravação de viagem no tempo
Quando o ponto de captura é ativado, um instantâneo aparece na janela Ferramentas de Diagnóstico. Se essa janela não estiver aberta, abra-a selecionando Depurar>Windows>Mostrar Ferramentas de Diagnóstico.
Selecione Exibir Instantâneo para abrir a gravação de viagem no tempo no editor de código.
Você pode executar todas as linhas de código que a depuração temporal registrou usando os botões Continuar e Continuar Reverso.
Você também pode usar a barra de ferramentas Debug para Mostrar a Próxima Instrução, Entrar, Passar por cima, Sair, Voltar para dentro, Retroceder por cima, e Retroceder para fora.
Você também pode usar as janelas Locais, Relógios 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 envolvendo viagem no tempo.
Para obter mais informações e ajuda, consulte Diagnóstico de problemas e questões conhecidas para depuração de snapshots no Visual Studio.
Definir um ponto de interrupção condicional
Se for difícil recriar um estado específico em seu aplicativo, considere usar um snappoint condicional. Os snappoints condicionais ajudam você a evitar a coleta de uma gravação até que o aplicativo insira 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 ocorrências, consulte condições de ponto de interrupção.
Conteúdo relacionado
Neste tutorial, você aprendeu a usar o Depurador de Instantâneos para coletar uma gravação de viagem no tempo para VMs do Azure. Saiba mais sobre debugging de snapshots.