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.
Um arquivo de despejo é um instantâneo que mostra o processo que estava sendo executado e os módulos que foram carregados para um aplicativo em um determinado momento. Um despejo com informações de pilha também inclui um instantâneo da memória do aplicativo nesse ponto.
Abrir um arquivo de despejo com uma pilha no Visual Studio é algo como parar em um ponto de interrupção em uma sessão de depuração. Embora não seja possível continuar a execução, é possível examinar as pilhas, threads e os valores das variáveis do aplicativo no momento do dump.
Os dumps são usados principalmente para depurar problemas de máquinas às quais os desenvolvedores não têm acesso. Você pode usar um arquivo de despejo da máquina de um cliente quando não puder reproduzir uma falha ou um programa sem resposta em sua própria máquina. Os testadores também criam dumps para salvar dados de programas com falhas ou sem resposta para usar em mais testes.
O depurador do Visual Studio pode salvar arquivos de despejo para código gerenciado ou nativo. Ele pode depurar arquivos de despejo criados pelo Visual Studio ou por outros aplicativos que salvam arquivos no formato minidump .
Requisitos e limitações
- Para depurar arquivos de despejo de máquinas de 64 bits, o Visual Studio deve estar sendo executado em uma máquina de 64 bits.
- O Visual Studio pode depurar ficheiros de despejo de aplicações geridas do sistema operativo Linux.
- O Visual Studio pode depurar arquivos de despejo de aplicativos nativos de dispositivos ARM. Ele também pode depurar dumps de aplicativos gerenciados de dispositivos ARM, mas apenas no depurador nativo.
- Para depurar arquivos de despejo no modo kernel ou usar a extensão de depuraçãoSOS.dll no Visual Studio, baixe as ferramentas de depuração para Windows no kit de drivers do Windows (WDK).
- O Visual Studio não pode depurar arquivos de despejo salvos no formato de despejo de modo de usuário mais antigo e completo. Um despejo de modo de usuário completo não é o mesmo que um despejo com heap.
- A depuração de arquivos de despejo de código otimizado pode ser confusa. Por exemplo, a integração de funções do compilador pode resultar em pilhas de chamadas inesperadas e outras otimizações podem alterar o tempo de vida das variáveis.
Despejar arquivos com ou sem pilhas
Os ficheiros de despejo podem conter informações de heap.
Os ficheiros de despejo com pilhas de memória contêm um instantâneo da memória da aplicação, incluindo os valores das variáveis, no momento do despejo. O Visual Studio também guarda os binários dos módulos nativos que foram carregados num ficheiro de despejo com um heap, o que pode tornar a depuração mais fácil. O Visual Studio pode carregar símbolos de um arquivo de despejo com uma pilha, mesmo que não consiga encontrar um binário de aplicativo.
Os ficheiros de despejo sem heaps são menores do que os ficheiros de despejo com heaps, mas o depurador deve carregar os binários da aplicação para localizar as informações de símbolos. Os binários carregados devem corresponder exatamente aos que estão sendo executados durante a criação do dump. Ficheiros de despejo sem heaps salvam apenas os valores das variáveis de pilha.
Criar um arquivo de despejo
Enquanto estiver a depurar um processo no Visual Studio, pode guardar um ficheiro de despejo quando o depurador parar numa exceção ou ponto de paragem.
Com a depuração Just-In-Time ativada, é possível ligar o depurador do Visual Studio a um processo que falhou fora do Visual Studio e, em seguida, guardar um arquivo de despejo a partir do depurador. Consulte Anexar a processos em execução.
Para salvar um arquivo de despejo:
Enquanto estiver parado em um erro ou ponto de interrupção durante a depuração, selecione Depurar>Salvar Dump Como.
Na caixa de diálogo Guardar Despejo Como, em Guardar como tipo, selecione Minidump ou Minidump com Heap (o padrão).
Navegue até um caminho e selecione um nome para o arquivo de despejo e, em seguida, selecione Salvar.
Observação
Você pode criar arquivos de despejo com qualquer programa que suporte o formato minidump do Windows. Por exemplo, o utilitário de linha de comando Procdump do Windows Sysinternals pode criar arquivos de despejo de falha de processo com base em gatilhos ou sob demanda. Consulte Requisitos e limitações para obter informações sobre como usar outras ferramentas para criar arquivos de despejo.
Abrir um arquivo de despejo
No Visual Studio, selecione Arquivo>Aberto>Arquivo.
Na caixa de diálogo Abrir arquivo , localize e selecione o arquivo de despejo. Normalmente terá uma extensão .dmp . Selecione OK.
A janela Resumo do arquivo Minidump mostra informações de resumo e módulo para o arquivo de despejo e ações que você pode tomar.
Em Ações:
- Para definir locais de carregamento de símbolos, selecione Definir caminhos de símbolos.
- Para iniciar a depuração, selecione Depurar com Somente gerenciado, Depurar com Misto, Depurar com Somente nativo.
- Para analisar a memória gerenciada, selecione Depurar memória gerenciada e consulte Relatórios de tipo gerenciado.
- Para executar um analisador de memória no dump, selecione Executar Análise de Diagnóstico e consulte Depurar um despejo de memória gerenciado com Analisadores de Diagnóstico .NET.
Encontre arquivos .exe, .pdb e de origem
Para usar recursos de depuração completos em um arquivo de despejo, o Visual Studio precisa:
- O arquivo .exe para o qual o dump foi criado e outros binários (como DLLs) usados pelo processo de dump.
- Ficheiros de símbolos (.pdb) para o .exe e outros binários.
- Os arquivos .exe e .pdb que correspondem exatamente à versão e compilação dos arquivos na criação do dump.
- Arquivos de origem para os módulos relevantes. Você pode usar a desmontagem dos módulos se não conseguir encontrar os arquivos de origem.
Se o despejo tiver dados de pilha, o Visual Studio pode lidar com a ausência de binários para alguns módulos, mas deve ter binários suficientes para gerar pilhas de chamadas válidas.
Caminhos de pesquisa para arquivos .exe
O Visual Studio pesquisa automaticamente os seguintes locais para .exe arquivos que não estão incluídos no arquivo de despejo:
A pasta que contém o arquivo de despejo.
O caminho do módulo especificado pelo arquivo de despejo, que é o caminho do módulo na máquina que coletou o despejo.
- Os caminhos dos símbolos são especificados no painel Ferramentas (ou Depuração)>Opções na seção Todos os Autocolantes>Depuração>Símbolos. Você também pode abrir a página Símbolos no painel Ações da janela Resumo do arquivo de despejo . Nesta página, você pode adicionar mais locais para pesquisar.
- Os caminhos dos símbolos são especificados na caixa de diálogo Ferramentas (ou Depuração) >Opções, na seção de Depuração>Símbolos. Você também pode abrir a página Símbolos no painel Ações da janela Resumo do arquivo de despejo . Nesta página, você pode adicionar mais locais para pesquisar.
Use as páginas Sem binário, Sem símbolos ou Sem origem encontrada
Se o Visual Studio não conseguir encontrar os arquivos necessários para depurar um módulo no dump, ele mostrará uma página No Binary Found, No Symbols Found ou No Source Found . Essas páginas fornecem informações detalhadas sobre a causa do problema e fornecem links de ação que podem ajudá-lo a localizar os arquivos. Consulte Especificar símbolo (.pdb) e ficheiros de origem.