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:
O Snapshot Debugger captura um instantâneo dos aplicativos em produção quando o código que lhe interessa é executado. Para instruir o depurador a tirar um instantâneo, defina pontos de captura e pontos de registo no seu código. O depurador permite que você veja exatamente o que deu errado, sem afetar o tráfego do seu aplicativo de produção. O Depurador de Snapshot pode ajudá-lo a reduzir drasticamente o tempo necessário para resolver problemas que ocorrem em ambientes de produção.
Os pontos de instantâneo e os pontos de registo são semelhantes aos pontos de interrupção. Contudo, ao contrário dos pontos de interrupção, os pontos de instantâneo não param a aplicação quando são atingidos. Normalmente, a captura de um instantâneo num snappoint leva de 10 a 20 milissegundos.
Neste tutorial, você irá:
- Inicie o depurador de capturas
- Definir um ponto de captura e visualizar um instantâneo
- Definir um ponto de registo
Pré-requisitos
O Depurador de Instantâneos para Azure Kubernetes Services só está disponível para o Visual Studio 2019 Enterprise ou superior com a carga de trabalho 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 Enterprise.
A coleção de instantâneos está disponível para os seguintes aplicativos Web dos Serviços Kubernetes do Azure:
Aplicações ASP.NET Core a correr no .NET Core 2.2 ou posterior no Debian 9.
Aplicações ASP.NET Core executadas no .NET Core 2.2 ou posterior no Alpine 3.8.
ASP.NET Aplicativos principais em execução no .NET Core 2.2 ou posterior no Ubuntu 18.04.
Observação
Para ajudar a ativar o suporte para o Depurador Snapshot no AKS, fornecemos um repositório contendo um conjunto de Dockerfiles que demonstram a configuração em imagens Docker.
Abra seu projeto e inicie o Depurador de instantâneo
Abra o projeto que você gostaria de depurar instantâneo.
Importante
Para depuração de instantâneo, você precisa abrir a mesma versão do código-fonte que é publicada no seu serviço Kubernetes do Azure.
Escolha Depurar > , Anexar, Depurador de Instantâneo.... Selecione o recurso AKS no qual seu aplicativo Web está implantado e uma conta de armazenamento do Azure e clique em Anexar. O Depurador de Instantâneo também dá suporte ao Serviço de Aplicativo do Azure e aos Conjuntos de Dimensionamento de Máquinas Virtuais (VM) e Máquinas Virtuais do Azure.
Observação
(Visual Studio 2019 versão 16.2 e superior) O Depurador de Instantâneo ativou suporte para a nuvem Azure. Certifique-se de que o recurso do Azure e a conta de Armazenamento do Azure selecionada são da mesma nuvem. Entre em contato com o administrador do Azure se tiver dúvidas sobre as configurações de conformidade do Azure da sua empresa.
O Visual Studio agora está no modo de depuração por instantâneo.
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 ponto de encaixe
No editor de código, clique na calha lateral ao lado de uma linha de código em que está interessado para definir um snappoint. Certifique-se de que é o código que você sabe que será executado.
Clique em Iniciar Coleção para ativar o snappoint.
Sugestão
Você não pode executar passo a passo ao visualizar um instantâneo, mas pode colocar vários pontos de interrupção no seu código para rastrear a execução em diferentes linhas de código. Se tiver vários pontos de ajuste no seu código, o Depurador de Captura assegura que as capturas correspondentes sejam da mesma sessão de utilizador final. O Depurador de Instantâneo faz isso mesmo se houver muitos usuários acessando seu aplicativo.
Tire uma foto
Depois de definir um ponto de captura, pode gerar manualmente um instantâneo acedendo à vista do navegador do seu site e correndo a linha de código marcada ou aguardar que os utilizadores o gerem através do uso do site.
Inspecionar dados de instantâneo
Quando o ponto de ajuste é atingido, um instantâneo aparece na janela Ferramentas de Diagnóstico. Para abrir esta janela, escolha Depurar > Mostrar Ferramentas de Diagnóstico > do Windows.
Clique duas vezes no ponto de captura para abrir o instantâneo no editor de código.
A partir dessa exibição, você pode passar o mouse sobre variáveis para exibir Dicas de Dados, usar as janelas Locais, Inspeções e Pilha de Chamadas e também avaliar expressões.
O site em si ainda está ativo e os usuários finais não são afetados. Por padrão, apenas um snapshot é capturado por snappoint: depois que um snapshot é capturado, o snappoint é desativado. Se quiser capturar outro instantâneo no ponto de ajuste, pode reativar o ponto de ajuste clicando em Atualizar coleção.
Você também pode adicionar mais pontos de ajuste 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 na sua aplicação, considere usar um ponto de interrupção condicional. Os pontos de ajuste condicionais ajudam 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 acertos.
Para criar um ponto de ajuste condicional
Clique com o botão direito do rato num í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 é tirado apenas para o ponto instantâneo quando
visitor.FirstName == "Dan".
Definir um ponto de registo
Além de tirar um instantâneo quando um snappoint é atingido, você também pode configurar um snappoint para registrar uma mensagem (ou seja, criar um ponto de log). Você pode definir pontos de log sem precisar reimplantar seu aplicativo. Os pontos de log são executados virtualmente e não causam impacto ou efeitos colaterais ao seu aplicativo em execução.
Para criar um ponto de log:
Clique com o botão direito do rato num ícone de ponto de encaixe (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ê também pode avaliar variáveis em sua mensagem de log colocando-as dentro de chaves encaracoladas.
Se você escolher Enviar para a janela de saída, quando o ponto de log for atingido, a mensagem aparecerá na janela Ferramentas de diagnóstico.
Se você escolher Enviar para o log do aplicativo, quando o ponto de log for atingido, a mensagem aparecerá em qualquer lugar do qual você possa ver mensagens (
System.Diagnostics.TraceouILoggerno .NET Core), como o App Insights.
Conteúdo relacionado
Neste tutorial, aprendeste a usar o Depurador de Cópias Instantâneas do Azure Kubernetes. Você pode querer ler mais detalhes sobre esse recurso.