Analisando um arquivo de despejo de User-Mode

Este tópico inclui:

Analisando um arquivo de despejo de User-Mode com WinDbg

Os arquivos de despejo de memória no modo de usuário podem ser analisados pelo WinDbg. O processador ou a versão do Windows na qual o arquivo de despejo foi criado não precisa corresponder à plataforma na qual o WinDbg está sendo executado.

Instalando arquivos de símbolo

Antes de analisar o arquivo de despejo de memória, você precisará acessar os arquivos de símbolo para a versão do Windows que gerou o arquivo de despejo. Esses arquivos serão usados pelo depurador que você optar por usar para analisar o arquivo de despejo. Para obter informações sobre como trabalhar com o servidor de símbolos, consulte Símbolos Públicos da Microsoft..

Você também precisará instalar todos os arquivos de símbolo para o processo de modo de usuário, um aplicativo ou serviço do sistema, que fez com que o sistema gerasse o arquivo de despejo. Se esse código foi escrito por você, os arquivos de símbolo devem ter sido gerados quando o código foi compilado e vinculado. Se esse for um código comercial, marcar no CD-ROM do produto ou entre em contato com o fabricante do software para obter esses arquivos de símbolo específicos.

Iniciando o WinDbg

Para analisar um arquivo de despejo, inicie o WinDbg com a opção de linha de comando -z :

windbg -ySymbolPath-iImagePath-zDumpFileName

A opção -v (modo detalhado) também é útil. Para obter uma lista completa de opções, consulte Opções de Command-Line do WinDbg.

Se o WinDbg já estiver em execução e estiver no modo inativo, você poderá abrir um despejo de memória selecionando o Arquivo | Abra o comando de menu Despejo de Falha ou pressione a tecla de atalho CTRL+D. Quando a caixa de diálogo Abrir Despejo de Falha for exibida, insira o caminho completo e o nome do arquivo de despejo de memória na caixa de texto Nome do arquivo ou use a caixa de diálogo para selecionar o caminho e o nome do arquivo adequados. Quando o arquivo apropriado tiver sido escolhido, selecione Abrir.

Você também pode abrir um arquivo de despejo depois que o depurador estiver em execução usando o comando .opendump (Abrir Arquivo de Despejo), seguido por g (Go).

É possível depurar vários arquivos de despejo ao mesmo tempo. Isso pode ser feito incluindo vários comutadores -z na linha de comando (cada um seguido por um nome de arquivo diferente) ou usando .opendump para adicionar arquivos de despejo adicionais como destinos de depurador. Para obter informações sobre como controlar uma sessão de vários destinos, consulte Depurando vários destinos.

Os arquivos de despejo geralmente terminam com a extensão .dmp ou .mdmp. Você pode usar compartilhamentos de rede ou nomes de arquivo UNC (Convenção Universal de Nomenclatura) para o arquivo de despejo de memória.

Também é comum que arquivos de despejo sejam empacotados em um arquivo CAB. Se você especificar o nome do arquivo (incluindo a extensão .cab) após a opção -z ou como o argumento para um comando .opendump , o depurador poderá ler os arquivos de despejo diretamente do CAB. No entanto, se houver vários arquivos de despejo armazenados em um único CAB, o depurador só poderá ler um deles. O depurador não lerá nenhum arquivo adicional do CAB, mesmo que eles fossem arquivos de símbolo ou executáveis associados ao arquivo de despejo.

Analisando um arquivo de despejo de usuário completo

A análise de um arquivo de despejo de usuário completo é semelhante à análise de uma sessão de depuração dinâmica. Consulte a seção Referência de Comandos do Depurador para obter detalhes sobre quais comandos estão disponíveis para depuração de arquivos de despejo no modo de usuário.

Analisando arquivos de minidump

A análise de um arquivo de minidump no modo de usuário é feita da mesma forma que um despejo de usuário completo. No entanto, como muito menos memória foi preservada, você está muito mais limitado nas ações que pode executar. Os comandos que tentam acessar a memória além do que é preservado no arquivo de minidump não funcionarão corretamente.

Técnicas adicionais

Para técnicas que podem ser usadas para ler tipos específicos de informações de um arquivo de despejo, consulte Extraindo informações de um arquivo de despejo.

Analisando um arquivo de despejo de User-Mode com CDB

Os arquivos de despejo de memória no modo de usuário podem ser analisados pelo CDB. O processador ou a versão do Windows na qual o arquivo de despejo foi criado não precisa corresponder à plataforma na qual a CDB está sendo executada.

Instalando arquivos de símbolo

Antes de analisar o arquivo de despejo de memória, você precisará acessar os arquivos de símbolo para a versão do Windows que gerou o arquivo de despejo. Esses arquivos serão usados pelo depurador que você optar por usar para analisar o arquivo de despejo. Para obter informações sobre como trabalhar com o servidor de símbolos, consulte Símbolos públicos da Microsoft.

Você também precisará instalar todos os arquivos de símbolo para o processo de modo de usuário, um aplicativo ou serviço do sistema, que fez com que o sistema gerasse o arquivo de despejo. Se esse código foi escrito por você, os arquivos de símbolo devem ter sido gerados quando o código foi compilado e vinculado. Se esse for um código comercial, marcar no CD-ROM do produto ou entre em contato com o fabricante do software para obter esses arquivos de símbolo específicos.

Iniciando o CDB

Para analisar um arquivo de despejo, inicie o CDB com a opção de linha de comando -z :

cdb -ySymbolPath-iImagePath-zDumpFileName

A opção -v (modo detalhado) também é útil. Para obter uma lista completa de opções, consulte Opções de Command-Line do CDB.

Você também pode abrir um arquivo de despejo depois que o depurador estiver em execução usando o comando .opendump (Abrir Arquivo de Despejo), seguido por g (Go). Isso permite que você depure vários arquivos de despejo ao mesmo tempo.

É possível depurar vários arquivos de despejo ao mesmo tempo. Isso pode ser feito incluindo vários comutadores -z na linha de comando (cada um seguido por um nome de arquivo diferente) ou usando .opendump para adicionar arquivos de despejo adicionais como destinos de depurador. Para obter informações sobre como controlar uma sessão de vários destinos, consulte Depurando vários destinos.

Os arquivos de despejo geralmente terminam com a extensão .dmp ou .mdmp. Você pode usar compartilhamentos de rede ou nomes de arquivo UNC (Convenção Universal de Nomenclatura) para o arquivo de despejo de memória.

Também é comum que arquivos de despejo sejam empacotados em um arquivo CAB. Se você especificar o nome do arquivo (incluindo a extensão .cab) após a opção -z ou como o argumento para um comando .opendump , o depurador poderá ler os arquivos de despejo diretamente do CAB. No entanto, se houver vários arquivos de despejo armazenados em um único CAB, o depurador só poderá ler um deles. O depurador não lerá nenhum arquivo adicional do CAB, mesmo que sejam arquivos de símbolo ou executáveis associados ao arquivo de despejo.

Analisando um arquivo de despejo de usuário completo

A análise de um arquivo de despejo de usuário completo é semelhante à análise de uma sessão de depuração dinâmica. Consulte a seção Referência de Comandos do Depurador para obter detalhes sobre quais comandos estão disponíveis para depuração de arquivos de despejo no modo de usuário.

Analisando arquivos de minidump

A análise de um arquivo de minidump no modo de usuário é feita da mesma forma que um despejo de usuário completo. No entanto, como muito menos memória foi preservada, você está muito mais limitado nas ações que pode executar. Os comandos que tentam acessar a memória além do que é preservado no arquivo de minidump não funcionarão corretamente.

Técnicas adicionais

Para técnicas que podem ser usadas para ler tipos específicos de informações de um arquivo de despejo, consulte Extraindo informações de um arquivo de despejo.