Um despejo é um arquivo que contém um instantâneo do processo no momento em que ele foi criado e pode ser útil para examinar o estado do aplicativo. Despejos poderão ser usados para depurar um aplicativo .NET quando for difícil anexar um depurador a ele, como em ambientes de produção ou CI. O uso de despejos permite capturar o estado do processo problemático e examinar sem precisar interromper o aplicativo.
Coletar despejos
Os despejos podem ser coletados de várias maneiras, dependendo da plataforma em que seu aplicativo está sendo executado.
Observação
Os despejos podem conter informações confidenciais porque podem conter a memória completa do processo em execução. Ao gerenciá-los, tenha em mente as restrições de segurança e diretrizes aplicáveis.
Dica
Para perguntas frequentes sobre coleta de despejo, análise e outras advertências, consulte Despejos: Perguntas Frequentes.
Talvez você queira coletar um despejo quando o aplicativo ainda não tiver falhado. Por exemplo, se você quiser examinar o estado de um aplicativo que parece estar em deadlock, configurar as variáveis de ambiente para coletar despejos em caso de falha não ajudará, pois o aplicativo ainda estará em execução.
dotnet-dump é uma ferramenta simples de linha de comando multiplataforma para coletar um despejo. Várias outras ferramentas do depurador, como o Visual Studio ou o windbg, também têm recursos de coleta de despejo.
Se você estiver executando seu aplicativo em produção ou estiver executando-o de maneira distribuída (vários serviços, réplicas), o dotnet-monitor fornecerá suporte para muitos cenários comuns e investigações de diagnóstico ad hoc, incluindo a saída e coleta de despejo. Isso permite que os despejos sejam coletados remotamente ou com condições de gatilho.
Analisar despejos
Navegue até Depurar despejos do Linux para obter informações sobre como analisar despejos coletados no Linux.
Navegue até Depurar despejos do Windows para obter informações sobre como analisar despejos coletados no Windows.
Análise da Memória
Você poderá executar a análise de memória em seu aplicativo se a memória do aplicativo continuar crescendo, mas você não souber por que isso está acontecendo. O tutorial de vazamento de memória de depuração mostra como depurar uma perda de memória usando as ferramentas da CLI do dotnet com os comandos dotnet-sos dumpheap e gcroot.
Saiba mais sobre como aproveitar despejos para ajudar a diagnosticar problemas em seu aplicativo .NET.
O tutorial Depurar despejos do Linux orienta você sobre como depurar um despejo que foi coletado no Linux.
O tutorial Depuração de deadlocks explica como depurar um deadlock no seu aplicativo .NET usando despejos.
Colaborar conosco no GitHub
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
Utilize o Aplicativo Web Inoperante, o Monitoramento de Falhas e o Genie para solução de problemas. Use essas ferramentas para monitorar a disponibilidade de aplicativos e plataformas, identificar exceções sem tratamento, capturar despejos de memória e pilha de chamadas, bem como localizar áreas de investigação e diagnóstico.