Partilhar via


Usar arquivos de despejo para depurar falhas e travamentos de aplicativo no Visual Studio

Arquivos de despejo com ou sem heaps; criar um arquivo de despejo; abrir um arquivo de despejo; localizar os binários, os pdbs e o arquivo de origem de um arquivo de despejo.

Conteúdo

O que é um arquivo de despejo?

Arquivos de despejo, com ou sem heaps

Requisitos e limitações

Criar um arquivo de despejo

Abrir um arquivo de despejo

Localizar arquivos binários, de símbolo (.pdb) e de origem

O que é um arquivo de despejo?

Um arquivo de despejo é um instantâneo de um aplicativo no momento em que o despejo é realizado. Ele mostra que processo estava sendo executado e que módulos foram carregados. Se o despejo foi salvo com informações de heap, o arquivo de despejo conterá um instantâneo do que estava na memória do aplicativo naquele momento. Abrir um arquivo de despejo com um heap no Visual Studio é 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, você pode examinar as pilhas, os threads e os valores das variáveis do aplicativo no momento em que o despejo ocorreu.

Os despejos são usados principalmente para depuração de problemas que ocorrem em computadores aos quais o desenvolvedor não tem acesso. Por exemplo, será possível usar um arquivo de despejo no computador de um cliente quando você não puder reproduzir a pane nem parar o computador. Os despejos também são criados por testadores para salvar dados de pane ou parada para que o computador de teste possa ser usado para mais testes. O depurador do Visual Studio pode salvar arquivos de despejo para código gerenciado ou nativo. O depurador pode carregar arquivos de despejo que foram criados pelo Visual Studio ou por outros programas que salvam arquivos no formato de minidespejo.

Voltar ao inícioConteúdo

Arquivos de despejo, com ou sem heaps

Você pode criar arquivos de despejo com ou sem informações de heap.

  • Os arquivos de despejo com heaps contêm um instantâneo da memória do aplicativo. Isso inclui os valores das variáveis no momento em que o despejo foi criado. Se você carregar um arquivo de despejo que foi salvo com um heap, o Visual Studio poderá carregar os símbolos, mesmo se o binário do aplicativo não for encontrado. O Visual Studio também salva os binários de módulos nativos carregados no arquivo de despejo, o que pode facilitar muito a depuração.

  • Os arquivos de despejo sem heaps são muito menores do que despejos com informações de heap. No entanto, o depurador precisa carregar os binários de aplicativo para localizar as informações do símbolo. Os binários devem ter uma correspondência exata dos binários que foram usados quando o despejo foi criado. Somente os valores das variáveis de pilha são salvos em arquivos de despejo sem dados de heap.

Voltar ao inícioConteúdo

Requisitos e limitações

  • Depurar arquivos de despejo de código otimizado pode ser confuso. Por exemplo, o compilador com funções embutidas pode resultar em pilhas de chamadas inesperadas e outras otimizações podem alterar o tempo de vida de variáveis.

  • Os arquivos de despejo de computadores de 64 bits devem ser depurados em uma instância do Visual Studio em execução em um computador de 64 bits.

  • Em versões do Visual Studio anteriores ao VS 2013, os despejos de aplicativos de 32 bits que eram executados em computadores de 64 bits que foram coletados por algumas ferramentas (como o Gerenciador de Tarefas e o WinDbg de 64 bits) não podiam ser abertos no Visual Studio. Essa limitação foi removida do VS 2013.

  • O Visual Studio pode depurar arquivos de despejo de aplicativos nativos em dispositivos ARM. O Visual Studio também pode depurar arquivos de despejo de aplicativos gerenciados em dispositivos ARM, mas somente no depurador nativo.

  • Para depurar arquivos de despejo no modo kernel no Visual Studio 2013, baixe a versão Windows 8.1 das Ferramentas de Depuração para Windows. Consulte Depuração de kernel no Visual Studio.

  • O Visual Studio não pode depurar arquivos de despejo salvos no formato de despejo mais antigo conhecido como um despejo completo do modo de usuário. Observe que um despejo completo do modo de usuário não é igual a um despejo com heap.

  • Para depurar com o SOS.dll (Extensão de Depuração SOS) no Visual Studio, você deve instalar as Ferramentas de Depuração para Windows que fazem parte do Kit de Driver do Windows (WDK). Consulte Windows 8.1 Preview: baixe kits, bits e ferramentas.

Voltar ao inícioConteúdo

Criar um arquivo de despejo

Para criar um arquivo de despejo com o Visual Studio:

  • 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 em um ponto de interrupção. Escolha Salvar Despejo como, Depurar. Na caixa de diálogo Salvar Despejo como, na lista Salvar como tipo, você pode selecionar Minidespejo ou Minidespejo com Heap (o padrão).

  • Com a opção Depuração Just-In-Time no Visual Studio habilitada, você pode anexar o depurador a um processo travado que está em execução fora do depurador e salvar um arquivo de despejo. Consulte Anexar aos processos em execução com o Depurador do Visual Studio

Você também pode criar arquivos de despejo com qualquer programa que ofereça suporte ao formato de minidespejo do Windows. Por exemplo, o utilitário de linha de comando Procdump do Windows Sysinternals pode criar arquivos de despejo de pane de processo com base em disparadores ou sob demanda. Consulte Requisitos e limitações, neste tópico, para obter mais informações sobre como usar outras ferramentas para criar arquivos de despejo.

Voltar ao inícioConteúdo

Abrir um arquivo de despejo

  1. No Visual Studio, escolha Arquivo, Abrir, Arquivo.

  2. Na caixa de diálogo Abrir Arquivo, localize e selecione o arquivo de despejo. Geralmente, ele terá uma extensão .dmp. Em seguida, escolha OK.

  3. A janela Resumo do Arquivo de Despejo é exibida. Nessa janela, você pode exibir informações resumidas da depuração do arquivo de despejo, definir o caminho do símbolo, iniciar a depuração e copiar as informações resumidas na área de transferência.

    Página de resumo de minidespejo

  4. Para iniciar a depuração, vá para a seção Ações e selecione Depurar Somente com Nativo ou Depurar com Misto.

Localizar arquivos binários, de símbolo (.pdb) e de origem

Para usar os recursos completos do Visual Studio a fim de depurar um arquivo de despejo, você precisar acessar:

  • O arquivo .exe para o qual o despejo foi feito e outros binários (DLL, etc.) que foram usados no processo de despejo.

    Se você estiver depurando um despejo com 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. O Visual Studio inclui os módulos nativos em um arquivo de despejo com heap.

  • Arquivos de símbolo (.pdb) para o .exe e outros binários.

  • Arquivos de origem para os módulos em que você está interessado.

    Os arquivos executável e .pdb devem corresponder exatamente à versão e à compilação dos arquivos usados quando o despejo foi criado.

    Você pode depurar usando a desmontagem dos módulos, se não for possível localizar os arquivos de origem.

Caminhos de pesquisa padrão para arquivos executáveis

O Visual Studio pesquisa automaticamente esses locais em busca de arquivos executáveis que não estão incluídos no arquivo de despejo:

  1. O diretório que contém o arquivo de despejo.

  2. O caminho do módulo que é especificado no arquivo de despejo. Esse é o caminho do módulo no computador onde o despejo foi coletado.

  3. Os caminhos de símbolo especificados na página Depuração, Opções, Símbolos da caixa de diálogo Ferramentas, Opções do Visual Studio. Você pode adicionar mais locais para pesquisa nessa página.

Usando as páginas Nenhum Binário/Símbolo/Origem

Se o Visual Studio não puder encontrar os arquivos necessários para depurar um módulo no despejo, ele exibirá uma página apropriada (Nenhum Binário Encontrado, Nenhum Símbolo Encontrado ou Nenhuma Origem Encontrada). Essas páginas fornecem informações detalhadas sobre a causa do problema e fornecem links de ação que podem ajudar a identificar o local correto dos arquivos. Consulte Especificar arquivos de símbolo (.pdb) e de origem no Depurador do Visual Studio.

Voltar ao inícioConteúdo

Consulte também

Conceitos

Depuração Just-In-Time no Visual Studio

Depurar seu aplicativo gravando execução de código com o IntelliTrace

Outros recursos

Especificar arquivos de símbolo (.pdb) e de origem no Depurador do Visual Studio