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.
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 momento. Um despejo com informações da heap também inclui um instantâneo da memória do aplicativo nesse ponto.
Abrir um arquivo de despejo com um heap no Visual Studio é parecido com parar em um ponto de interrupção em uma sessão de depuração. Embora não seja possível continuar a execução, você pode examinar as pilhas, os threads e os valores variáveis do aplicativo no momento do despejo.
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 do computador de um cliente quando não conseguir reproduzir uma falha ou um programa travado em seu próprio computador. Os testadores também criam arquivos de dados para salvar informações do programa que falhou ou está sem resposta, a serem usados para 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 memória de máquinas de 64 bits, o Visual Studio deve estar em execução em uma máquina de 64 bits.
- O Visual Studio pode depurar arquivos de despejo de aplicativos gerenciados do sistema operacional Linux.
- O Visual Studio pode depurar arquivos de despejo de aplicativos nativos em dispositivos ARM. Ele também pode depurar arquivos de despejo de aplicativos gerenciados em dispositivos ARM, mas somente no depurador nativo.
- Para depurar arquivos de despejo em modo kernel ou usar a extensão de depuração SOS.dll no Visual Studio, baixe as ferramentas de depuração para Windows no Kit de Driver do Windows (WDK).
- O Visual Studio não pode depurar arquivos de despejo salvos no formato antigo full user-mode dump. Um despejo completo do modo de usuário não é igual a um despejo com heap.
- Analisar arquivos de dump de código otimizado pode ser confuso. Por exemplo, as funções embutidas do compilador podem resultar em pilhas de chamadas inesperadas, e outras otimizações podem alterar o tempo de vida de variáveis.
Arquivos de despejo com ou sem heaps
Arquivos de despejo podem ou não ter informações de heap.
Arquivos de despejo com heaps contêm um instantâneo da memória do aplicativo, incluindo os valores das variáveis, no momento do despejo. O Visual Studio também salva os binários de módulos nativos carregados em um arquivo de despejo com um heap, o que pode facilitar muito a depuração. O Visual Studio pode carregar símbolos de um arquivo de despejo com um heap, mesmo que não encontre um binário de aplicativo.
Os arquivos de despejo sem heaps são muito menores do que despejos com heaps, mas o depurador deve carregar os binários do aplicativo para localizar informações de símbolo. Os binários carregados devem corresponder exatamente aos executados durante a criação do despejo. Arquivos de despejo sem heaps salvam apenas os valores das variáveis de pilha.
Criar um arquivo de despejo
Enquanto você estiver depurando um processo no Visual Studio, será possível salvar um arquivo de despejo quando o depurador parar em uma exceção ou no ponto de interrupção.
Com aDepuração Just-In-Time habilitada, você pode anexar o depurador do Visual Studio a um processo com falha fora do Visual Studio e salvar um arquivo de despejo 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 Despejo como.
Na caixa de diálogo Salvar despejo como, em Salvar como tupo, selecione Minidump ou Minidump com Heap (o padrão).
Navegue até um caminho e selecione um nome para o arquivo de despejo e selecione Salvar.
Observação
Você pode criar arquivos de despejo com qualquer programa que dê suporte ao formato de 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.
{1>Abrir um arquivo de despejo<1}
No Visual Studio, selecione Arquivo>Abrir>Arquivo.
Na caixa de diálogo Abrir Arquivo , localize e selecione o arquivo de despejo. Geralmente, ele terá uma extensão .dmp . Selecione OK.
A janela Resumo do Arquivo do Minidump mostra informações de resumo e módulo para o arquivo de despejo e ações que você pode executar.
Em Ações:
- Para definir locais de carregamento de símbolo, selecione Definir caminhos de símbolo.
- Para iniciar a depuração, selecione Depurar com Somente Gerenciado, Depurar com Mixed, Depurar com Somente Nativo.
- Para analisar a memória gerenciada, selecione Depurar Memória Gerenciada e ver relatórios de tipo gerenciado.
- Para executar um analisador de memória no despejo, selecione Executar Análise de Diagnóstico e ver Depurar um despejo de memória gerenciado com analisadores de diagnóstico do .NET.
Localizar .exe, .pdb e arquivos de origem
Para usar todos os recursos de depuração em um arquivo de despejo, o Visual Studio precisa:
- O arquivo .exe para o qual o despejo foi criado e outros binários (como DLLs) usados pelo processo de despejo.
- Arquivos de símbolo (.pdb) para o .exe e outros binários.
- Os arquivos .exe e .pdb que correspondem exatamente à versão e ao build dos arquivos na criação do despejo.
- 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 heap, o Visual Studio poderá lidar com binários ausentes para alguns módulos, mas deverá ter binários para módulos suficientes de modo a gerar pilhas de chamadas válidas.
Pesquisar caminhos para arquivos .exe
O Visual Studio pesquisa automaticamente esses locais em busca de arquivos.exe 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 no computador que coletou o despejo.
- Os caminhos de símbolo especificados em Ferramentas (ou Depuração) >Opções>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 Fonte de Origem Encontrada
Se o Visual Studio não encontrar os arquivos necessários para depurar um módulo no despejo, ele mostrará uma página Sem Binário Encontrado, Sem Símbolos Encontrados ou Sem Fonte Encontrada . 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. Confira Especificar arquivos de símbolo (.pdb) e de origem.