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.
O Depurador de Instantâneos tira um instantâneo de seus aplicativos em produção quando o código em que você está interessado é executado. Para instruir o depurador a tirar um instantâneo, defina snappoints e logpoints em seu código. O depurador permite que você veja exatamente o que deu errado, sem afetar o tráfego do aplicativo de produção. O Snapshot Debugger pode ajudá-lo a reduzir drasticamente o tempo necessário para resolver problemas que ocorrem em ambientes de produção.
Snappoints e logpoints são semelhantes aos pontos de interrupção. Porém, ao contrário dos pontos de interrupção, os snappoints não interrompem o aplicativo quando atingidos. Normalmente, capturar um instantâneo em um snappoint (ponto de captura) leva de 10 a 20 milissegundos.
Neste tutorial, você irá:
- Iniciar o Depurador de Instantâneos
- Definir um ponto de captura e visualizar um instantâneo
- Definir um ponto de log
Pré-requisitos
O Snapshot Debugger só está disponível a partir do Visual Studio 2017 Enterprise versão 15.5 ou superior com o workload de desenvolvimento do Azure. (Na guia Componentes individuais , você o encontra em Depuração e teste>Depurador de instantâneo.)
Se ainda não estiver instalado, instale o Visual Studio 2019. Se você estiver atualizando de uma instalação anterior do Visual Studio, execute o Instalador do Visual Studio e verifique o componente Snapshot Debugger na carga de trabalho de desenvolvimento do ASP.NET e da web.
Plano básico ou superior do Serviço de Aplicativo do Azure.
A coleção de instantâneos está disponível para os seguintes aplicativos Web em execução no Serviço de Aplicativo do Azure:
- ASP.NET aplicativos em execução no .NET Framework 4.6.1 ou posterior.
- ASP.NET Core aplicativos em execução no .NET Core 2.0 ou posterior no Windows.
Abra seu projeto e inicie o Depurador de Instantâneos
Abra o projeto que você deseja depurar por instantâneo.
Importante
Para depurar o instantâneo, você precisa abrir a mesma versão do código-fonte publicada no Serviço de Aplicativo do Azure.
Escolha Depurar Depurador de Captura Instantânea>.... Selecione o Serviço de Aplicativos do Azure no qual seu projeto foi implantado e uma conta de armazenamento do Azure e clique em Anexar. O Depurador de Instantâneos também dá suporte ao Serviço de Kubernetes do Azure e às Máquinas Virtuais do Azure e Conjuntos de Dimensionamento de Máquinas Virtuais.
Importante
Na primeira vez que você selecionar Anexar Depurador de Instantâneos, será solicitado que você instale a extensão do site do Depurador de Instantâneos no Serviço de Aplicativo do Azure. Essa instalação requer uma reinicialização do Serviço de Aplicativo do Azure.
Observação
(Visual Studio 2019 versão 16.2 e superior) O Depurador de Instantâneos habilitou o suporte à nuvem do Azure. Verifique se o recurso do Azure e a conta de Armazenamento do Azure selecionada estão na mesma nuvem. Entre em contato com o administrador do Azure se você tiver dúvidas sobre as configurações de conformidade do Azure da sua empresa.
O Visual Studio agora está no modo de depuração de instantâneos.
A janela Módulos mostra quando todos os módulos foram carregados para o Serviço de Aplicativo do Azure (escolha Depurar > Módulos do Windows > para abrir esta janela).
Definir um snappoint
No editor de código, clique na sarjeta esquerda ao lado de uma linha de código na qual você está interessado em definir um snappoint. Verifique se é o código que você sabe que será executado.
Clique em Iniciar Coleção para ativar o snappoint.
Dica
Você não pode intervir ao exibir um instantâneo, mas pode colocar vários snappoints em seu código para seguir a execução em diferentes linhas de código. Se você tiver vários snappoints em seu código, o Depurador de Snapshots garantirá que os snapshots correspondentes sejam da mesma sessão do usuário final. O Depurador de Instantâneos faz isso mesmo se houver muitos usuários utilizando seu aplicativo.
Tirar um instantâneo
Depois que um ponto de captura é definido, você pode gerar manualmente um instantâneo acessando a visualização do navegador do seu site e executando a linha de código marcada ou aguardar que os usuários gerem um a partir do uso do site.
Inspecionar dados de instantâneo
Quando o snappoint é atingido, uma captura de tela aparece na janela Ferramentas de Diagnóstico. Para abrir essa janela, escolha Depurar > Ferramentas de Diagnóstico do Windows > Show.
Clique duas vezes no snappoint para abrir o instantâneo no editor de código.
Nesse modo de exibição, você pode passar o mouse sobre variáveis para exibir Dicas de Dados, usar as janelas Locais, Relógios e Pilha de Chamadas e também avaliar expressões.
O próprio site ainda está ativo e os usuários finais não são afetados. Apenas um instantâneo é capturado por snappoint; por padrão, após a captura de um instantâneo, o snappoint é automaticamente desativado. Se você quiser capturar outro instantâneo no snappoint, poderá ativar o snappoint novamente clicando em Atualizar Coleção.
Você também pode adicionar mais snappoints ao seu aplicativo e ativá-los com o botão Atualizar Coleção .
Precisa de ajuda? Consulte as páginas de Resolução de problemas e questões conhecidas e perguntas frequentes sobre depuração de instantâneos.
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 controlar quando tirar um instantâneo, como quando uma variável contém um valor específico que você deseja inspecionar. Você pode definir condições usando expressões, filtros ou contagens de ocorrências.
Para criar um snappoint condicional
Clique com o botão direito do mouse em um ícone de snappoint (a esfera oca) e escolha Configurações.
Na janela de configurações do snappoint, digite uma expressão.
Na ilustração anterior, o instantâneo só é tirado para o snappoint quando
visitor.FirstName == "Dan"
.
Definir um ponto de log
Além de fazer uma captura de imagem quando um snappoint é atingido, você também pode configurar um snappoint para registrar uma mensagem (ou seja, criar um logpoint). Você pode definir pontos de log sem precisar reimplantar seu aplicativo. Os logpoints são executados virtualmente e não causam impacto ou efeitos colaterais ao aplicativo em execução.
Para criar um ponto de log
Clique com o botão direito do mouse em um ícone de snappoint (o hexágono azul) e escolha Configurações.
Na janela de configurações do snappoint, selecione Ações.
No campo Mensagem , você pode inserir a nova mensagem de log que deseja registrar. Você pode também avaliar variáveis na sua mensagem de log, colocando-as dentro de chaves.
Se você escolher Enviar para a Janela de Saída, quando o ponto de log for atingido, a mensagem será exibida na janela Ferramentas de Diagnóstico.
Se você escolher Enviar para o log do aplicativo, quando o logpoint for atingido, a mensagem aparecerá em qualquer lugar onde você possa ver mensagens de
System.Diagnostics.Trace
(ou deILogger
no .NET Core), como no App Insights.
Conteúdo relacionado
Neste tutorial, você aprendeu a usar o Depurador de Instantâneos para Serviços de Aplicativos. Talvez você queira ler mais detalhes sobre esse recurso.