quinta-feira, 8 de novembro de 2012

WinDbg Tutorial Minidump - Configurando e Leitura arquivos minidump


Este é um tutorial sobre como criar e ler arquivos de minidespejo quando receber uma BSOD (tela azul da morte) na tentativa de obter mais conhecimentos sobre a causa do problema. A primeira coisa é em primeiro lugar. Baixe as mais recentes ferramentas de depuração do site da Microsoft.

Em seguida, vá em Iniciar / Start Search. Digite i

o comando cmd.

Em seguida, altere os diretórios para:

C: Tools Programa FilesDebugging para Windows (x86)

usando o comando:

cd c: ferramentas do programa filesdebugging para Windows (x86)

É caso insensível ao usar o comando cd.

Em seguida, digite:
windbg.exe zc: windowsminidumpmini06190901.dmp c "! analisar v"

Seu arquivo minidump está localizada em C: WindowsMinidumpMini06200901.dmp. Vai ser na forma "MiniMMDDYY01.dmp".

Símbolos do kernel estão errados. Corrija símbolos para fazer uma análise

Se em algum lugar na saída da Análise Bugcheck você ver um erro como:

Símbolos do kernel estão errados. Corrija símbolos para fazer a análise.

Então é mais provável que você está usando símbolos anteriores e incompatíveis ou arquivos corrompidos ou você não tem os símbolos adequados no local especificado quando o programa WinDbg estava tentando analisar o arquivo minidump. Então o que eu fiz foi abrir o programa WinDbg localizado em C: Tools Programa FilesDebugging para Windows (x86) (no Vista e eu acredito que é o mesmo local para XP).

Definir o caminho arquivo de símbolo VIA WINDBG linha de comando:

Este é um passo importante para garantir que o seu arquivo de caminho de símbolo está definido corretamente para que você não obter os símbolos do kernel são ERRADO erro ou outros tipos de erros. Agora definir o caminho do arquivo Símbolo (Arquivo / Caminho do arquivo símbolo) para:

SRVe: símbolos [caminho para microsoft caminho símbolos]

No entanto, por alguma razão eu achei que, a fim de definir o caminho do arquivo de símbolo em "Arquivo / Symbol File Path" campo você não pode alterá-lo diretamente com o campo de "Caminho Arquivo / Symbol". Então, o que eu achei que você precisa para alterá-lo através da janela de comando WinDbg, vá para:

"Ver / Command"

Na parte inferior da janela de comando ao lado do "> kd" prompt digite esta em:

. Sympath SRVe: símbolos [caminho para microsoft caminho símbolos].

A parte entre os dois asteriscos () é onde os símbolos de servidores da Microsoft será transferido para. É bastante grande (cerca de 22MB) para se certificar de que você tem espaço em disco suficiente.

Definição de caminho de arquivo de símbolo na variável de ambiente:

Alternativamente, você pode configurá-lo em sua variável de ambiente, quer no seu sistema ou variável de ambiente do usuário. Para fazer isso, clique na tecla do Windows e +. A tecla Windows é a chave para a direita da tecla CTRL esquerdo do teclado. Isto irá abrir o Windows Explorer.

Em seguida, clique em "Configurações avançadas do sistema" no canto superior esquerdo da janela. Esta etapa se aplica para o Vista apenas. Para usuários do XP, clique na guia Avançado.

Em seguida, clique em "variável de ambiente" botão na parte inferior da janela.

Em seguida, clique no botão "Novo" em Variáveis ​​do Sistema. Mais uma vez você pode criar o ambiente como uma variável de ambiente do usuário em seu lugar.

Em "Nome da variável" digite:
_NT_SYMBOL_PATH

No "Valor da variável", digite:
symsrvsymsrv.dlle: símbolos [caminho para microsoft caminho símbolos]

Se você definir o caminho do arquivo símbolo como uma variável de ambiente do sistema eu acredito que você pode ter que reiniciar o computador para que ele entre em vigor.

SAÍDA DO COMANDO WINDBG

Assim, o que se segue é a saída para o meu acidente:

Microsoft (R) Windows Debugger Versão 6.11.0001.404 X86
Copyright (c) Microsoft Corporation. Todos os direitos reservados.

Carregando o arquivo de despejo [c: windowsminidumpmini06260901.dmp]
Arquivo de despejo Mini Kernel: Somente registros e rastreamento de pilha estão disponíveis

Caminho de busca do símbolo é: SRVe: símbolos [caminho para símbolos Microsoft]
Caminho de pesquisa executável é:
Windows Server 2008/Windows Vista Kernel Version 6001 (Service Pack 1) MP (2 procs) livre compatível x86
Produto: WinNT, suite: SingleUserTS TerminalServer Pessoal
Construído por: 6001.18226.x86fre.vistasp1_gdr.0903021506
Nome da máquina:
Base de kernel = 0x8201d000 PsLoadedModuleList = 0x82134c70
Tempo da sessão de depuração: sex 26 jun 16:25:11.288 2009 (GMT7)
Sistema Uptime: 0 dias 21:39:36.148
Carregando símbolos do Kernel
.................................................. .............
.................................................. ..............
.................................................. .........
Carregando símbolos de usuário
Carregando a lista de módulo descarregado
............................

Análise Bugcheck

Use! Analisar v para obter informações detalhadas de depuração.

BugCheck A, {8cb5bcc0, 1b, 1, 820d0c1f}

Não foi possível carregar SystemRootsystem32DRIVERSSymIMv.sys imagem, erro Win32 0n2

ATENÇÃO: Não é possível verificar timestamp para SymIMv.sys

ERRO: carga módulo concluído, mas os símbolos não podem ser carregados para SymIMv.sys
Não foi possível carregar SystemRootsystem32DRIVERSNETw3v32.sys imagem, erro Win32 0n2

ATENÇÃO: Não é possível verificar timestamp para NETw3v32.sys

ERRO: carga módulo concluído, mas os símbolos não podem ser carregados para NETw3v32.sys
Processamento de comando inicial '! Analisar v'
Provavelmente causada por: tdx.sys (tdx! TdxMessageTlRequestComplete 94)

Continuação: MachineOwner

0:! Kd> analisar v

Análise Bugcheck

IRQL_NOT_LESS_OR_EQUAL (a)
Foi feita uma tentativa de acessar um endereço (ou completamente inválido) paginável em um
interromper nível de solicitação (IRQL) que é demasiado elevada. Este é geralmente
causados ​​por motoristas que usam endereços incorretos.
Se um depurador kernel está disponível obter o backtrace pilha.
Argumentos:
Arg1: 8cb5bcc0, memória referenciada
Arg2: 0000001b, IRQL
Arg3: 00000001, bitfield:

bit 0: valor 0 = operação de leitura, uma operação de gravação =

bit 3: Valor 0 = não uma executar a operação, 1 = operação executar (apenas em chips que suportam este nível de status)
Arg4: 820d0c1f, endereço que referenciado memória

Detalhes de depuração:

WRITE_ADDRESS: GetPointerFromAddress: incapaz de ler 82154868
Não foi possível ler a memória MiSystemVaType em 82134420

8cb5bcc0

CURRENT_IRQL: 1b

FAULTING_IP:
nt KiUnwaitThread! 19
820d0c1f 890a mov dword ptr [edx], ecx

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT

BUGCHECK_STR: 0xA

Process_name: System

TRAP_FRAME: 4526c4 (armadilha 0xffffffff4526c4.)
ERRCODE = 00000002
eax = 85c5d4d8 ebx = 00000000 ecx = 8cb5bcc0 edx = esi 8cb5bcc0 = edi 85c5d420 = ed9c7048
eip = 820d0c1f esp = 452738 ebp = 45274c iopl = 0 nv up ei pl nz nd pe nc
cs = 0008 SS = 0010 ds = 0023 es = 0023 fs = 0030 gs = 0000 efl = 00010206
nt KiUnwaitThread 0 x19!:
820d0c1f 890a mov dword ptr [edx], ecx ds: 0023:8 cb5bcc0 =????
Repor escopo padrão

LAST_CONTROL_TRANSFER: de 820d0c1f para 82077d24

STACK_TEXT:
4526c4 820d0c1f badb0d00 8cb5bcc0 87952ed0 nt! KiTrap0E 0 x2ac
45274c 8205f486 00000002 85c5d420 ed9c7048 nt! KiUnwaitThread 0 x19
452770 8205f52a ed9c7048 ed9c7008 00000000 nt! KiInsertQueueApc 0 x2a0
452790 8205742b ed9c7048 00000000 00000000 nt! KeInsertQueueApc 0 x4b
4527c8 8f989cd0 e79e1e88 e79e1f70 00000000 nt! IopfCompleteRequest 0 x438
4527e0 8a869ce7 00000007 00000000 00000007 tdx! TdxMessageTlRequestComplete 0 x94
452804 8a869d33 e79e1f70 e79e1e88 00000000 tcpip! UdpEndSendMessages 0 XFA
45281c 8a560c7f e79e1e88 00000001 00000000 tcpip! UdpSendMessagesDatagramsComplete 0 x22
...

STACK_COMMAND: kb

FOLLOWUP_IP:
tdx! TdxMessageTlRequestComplete 94
8f989cd0 6804010000 104h de pressão

SYMBOL_STACK_INDEX: 5

SYMBOL_NAME:! Tdx TdxMessageTlRequestComplete 94

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: tdx

Nome_da_imagem: tdx.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 479190ee

FAILURE_BUCKET_ID:! 0xA_tdx TdxMessageTlRequestComplete 94

BUCKET_ID:! 0xA_tdx TdxMessageTlRequestComplete 94

Continuação: MachineOwner

Parece que um monte de hieróglifos patranhas. No entanto, se você olhar de perto você pode ganhar alguma visão mais aprofundada sobre o possível problema ou causar isso. O Sistema process_name é o que sugere um processo de sistema. O MODULE_NAME é tdx.

KD SAÍDA DE COMANDO: lmvm TDX

A tdx foi clicável para mim que executa o comando:
kd> lmvm tdx

como um comando kd. O 'lm' em "lmvm" é módulo carregado. 'V' é detalhado. O "M" é um jogo padrão. Desde o chm depurador manual, afirma-o como:

Padrão m
Especifica um padrão que o nome do módulo deve corresponder. Padrão pode conter uma variedade de caracteres curinga e especificadores. Para mais informações sobre a sintaxe dessa informações, consulte Sintaxe seqüência curinga.

Você pode encontrar um monte de informações do manual chm quando você baixar o windbg da Microsoft. Vai-se aqui:
C: Tools Programa FilesDebugging para Windows (x86) Debugger.chm

A saída do comando acima é:
0: kd> lmvm tdx
iniciar nome do módulo final
8f97f000 8f995000 tdx (APO símbolos) c: Ferramentas Programa FilesDebugging para Windows (x86) symtdx.pdbCFB0726BF9864FDDA4B793D5E641E5531tdx.pdb

Arquivo de imagem carregado de símbolos: tdx.sys

Arquivo de imagem mapeada de memória: C: Program Ferramentas FilesDebugging para Windows (x86) symtdx.sys479190EE16000tdx.sys

Caminho da imagem: SystemRootsystem32DRIVERStdx.sys

Nome da imagem: tdx.sys

Timestamp: sex 18 jan 2008 21:55:58 (479190EE)

CheckSum: 0001391F

ImageSize: 00016000

Versão do arquivo: 6.0.6001.18000

Versão do produto: 6.0.6001.18000

Sinalizadores de arquivo: 0 (Máscara 3F)

OS Arquivo: 40004 NT Win32

Tipo de Arquivo: 3,6 driver

Data do arquivo: 00000000.00000000

Traduções: 0409.04b0

CompanyName: Microsoft Corporation

ProductName: Microsoft ® Windows ® Operating System

InternalName: tdx.sys

OriginalFilename: tdx.sys

ProductVersion: 6.0.6001.18000

FileVersion: 6.0.6001.18000 (longhorn_rtm.0801181840)

FileDescription: TDI driver Tradução

LegalCopyright: © Microsoft Corporation. Todos os direitos reservados.

Então, nós recolher visão um pouco mais. Quem faz o módulo ea possível causa do problema.

Eu olho para o STACK_TEXT e há referências a tcpip e NETIO que parece aludir a um problema de rede. Então, eu pesquisei outros com um problema BSOD e tdx.sys e há uma correcção para este problema. No entanto, uma grande palavra de cautela por favor não baixar o hotfix se este problema em particular não se aplica a você. Microsoft sugere usar os procedimentos do Microsoft Update, que incluirá todas as correcções.

Para obter o link para a correcção para o problema da rede do Google "Hotfix 934611 microsoft".

Eu não baixar esse hotfix mas optou por atualizei meu service pack. Atualmente, o Vista é o Service Pack 2. Eu só tinha Service Pack 1. Então, eu vou ver se isso corrige o problema.

Para verificar qual Service Pack você tiver instalado e qual a versão de bits (32 bits ou 64 bits), vá para:

"Iniciar / Computador". Rightclick "Computador" e clique em "Propriedades". Você verá as informações do Service Pack, sob o título "Windows Edition". Sob o título "Sistema" (cerca de meio caminho através da página), você vai ver "Tipo de sistema" que irá mostrar se você tem versões de 32 bits ou 64 bits instalado.

Para obter o Service Pack 2 para o Vista Google "Vista SP2 Microsoft"....

Nenhum comentário:

Postar um comentário