WinDBG: Criando arquivos de Dump

Neste quarto post da série vou demonstrar como criar arquivos de Dump.

Conceitos

Um arquivo de Dump representa o estado de um determinado processo. O grande objetivo por trás destes arquivos é possibilitar a análise de problemas sem utilizar o chamado live debugging. Uma vez criado o arquivo, a análise pode ser realizada a qualquer momento e em qualquer máquina*. Este procedimento é muito comum quando equipes distintas trabalham em conjunto para a resolução de hangs ou crashs. Uma equipe responsável pelo processo gera o Dump e outra equipe analisa o arquivo através de WinDBG.

Existem dois tipos de arquivos de Dump, Full e Mini.

O arquivo Full Dump contém todos os dados de memória do processo, o executável, entre outras informações. Já nos arquivos Mini Dump, o conteúdo pode ser variável, dependendo de onde foi gerado.

Nosso foco em todos os posts que envolvem arquivos de Dump será o Mini Dump, e esta opção será detalhada futuramente.

Ferramentas

Nós iremos utilizar a ferramenta Adplus para criar os arquivos de Dump, que já está presente na instalação do Debugging Tools for Windows. O arquivo - um script vbs - se encontra na raiz da instalação.

Adplus é uma ferramenta de linha de comando, criada pela equipe de suporte da Microsoft, para gerar informações sobre qualquer tipo de processo. No exemplo deste post, irei utilizar o adplus para gerar informações para o processo do IIS, ou w3wp.exe. Porém, esta ferramenta pode ser utilizada para qualquer processo, deste Console Applications, Windows Forms, WPF, Services, etc.

Modos de Execução

O Adplus pode ser utilizado de duas maneiras, hang ou crash:

  • O modo Hang deve ser utilizado quando o processo apresenta um comportamento estranho ou alta utilização de CPU - nosso popular, "travar". Este modo deve ser executado depois que a aplicação se comportou de forma incorreta.
  • O modo Crash deve ser utilizado quando o processo é finalizado inesperadamente. Este modo deve ser acionado antes do processo ser finalizado.

Configuração de ambiente

Para utilizarmos o Adplus corretamente, crie uma variável de ambiente chamada _NT_SYMBOL_PATH, para o caminho c:\symbols (crie esta pasta se não existir). Isto se refere aos símbolos de um processo, o que está fora do escopo deste post. Se você quiser saber mais sobre símbolos agora, acesse http://blogs.msdn.com/tess/archive/2005/12/05/500068.aspx.

Esta configuração não é obrigatória, apenas omite uma mensagem do Adplus, mas será realmente utilizada a partir do próximo post.

Utilização

A demonstração desta ferramenta está neste vídeo (10 minutos).

Conclusão

Este post rápido apresentou como gerar arquivos de Dump e como utilizá-los através do WinDBG. Existem outras maneiras de gerar este tipo de arquivo. Uma maneira muito conhecida é através da ferramenta DebugDiag.

Arquivos de Dump são o padrão para análise de problemas, evitando assim a presença de um profissional capacitado no momento de uma exceção e possibilitando o trabalhando em conjunto com outras equipes.

Espero que vocês tenham gostado deste post, até a próxima.

Links interessantes

http://support.microsoft.com/kb/286350

Abraços.

2 Comments

  • Andre, bom dia.

    Parabéns pelo vídeo sobre DUMP. A tempos veio lendo sobre isso e tentando colocar em prática mas confesso que até hoje não tinha conseguido compreender muito bem. Com seu vídeo ficou bastante claro o funcionamento. Agora vou colocar em prática e ver se descubro meu problema.

    Um abraço e parabéns novamente.

  • Obrigado Rafael!

Comments have been disabled for this content.