Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Suporte para Windows Vista Service Pack 1 (SP1) termina em 12 de julho de 2011. Para continuar recebendo atualizações de segurança para o Windows, verifique se você está executando o Windows Vista com Service Pack 2 (SP2). Para obter mais informações, consulte esta página da web Microsoft: suporte está sendo encerrado para algumas versões do Windows.

Resumo

Os símbolos de depuração do Windows devem ser verificados depois de iniciar o depurador do kernel (I386kd.exe | Windbg.exe). O depurador pode carregar e apresentar um prompt, mas se os símbolos estão incorretos, futuros comandos de depuração não fazem referência a variáveis, que leva a resultados esporádicos e funções adequadas. Abaixo estão alguns sinalizadores vermelhos e alguns métodos de ponto de verificação de validade dos símbolos.

Informações adicionais

Este artigo presume que o depurador de kernel está em execução e carregou um arquivo Memory DMP ou está conectado a um computador remoto. Comandos apresentados não são totalmente documentados e são mostrados apenas os trechos da saída.

Índice do artigo

  • Carregando o depurador do Kernel

  • Verificação de tempo de criação com! drivers

  • Usando Link.exe para verificar o tempo de criação

  • Unassembling uma função

  • Símbolos do Service Pack

Carregando o depurador do Kernel

Uma carga normal do depurador kernel exibe um dos seguintes prompts:

kd > sistema de uniprocessador 0: kd > sistema multiprocessadorO prompt mostrado abaixo indica que o arquivo de símbolo para o arquivo Ntoskrnl.exe está incorreto. Verifique para certificar-se de que o kernel multiprocessador ou uniprocessador apropriado e HAL são copiados para a árvore de símbolo. Exemplo:Symbol search path is: C:\symbolskd: crash dump initialized [c:\dump\memory.dmp]could not determine the current processor, using zeroKernel Version 1057 Free loaded @ 0x80100000Bugcheck 0000001e : c0000005 80151d5b 00000000 00000001*** Contents Deleted ***16kd> Quando o depurador do kernel carrega o arquivo Memory DMP, a versão do Kernel, bem como o número de processadores é exibido nas primeiras linhas. Confirme se a contagem de processador corresponde ao kernel apropriado e HAL. Informações de driver de símbolo são exibidas como ambos os símbolos são carregados ou adiados. Carga de exemplo:Symbol search path is: C:\symbolskd: crash dump initialized [c:\dump\memory.dmp]Kernel Version 1057 Free loaded @ 0x80100000Bugcheck 0000001e : c0000005 80151d5b 00000000 00000001re-loading all kernel symbolsKD: unloading symbols for "ntoskrnl.exe"KD: deferring symbol load for "ntoskrnl.exe" at 80100000KD: Loaded (2248) fpo entries for image (ntoskrnl.exe)KD: "ntoskrnl.exe" loaded 4074 symbols (80100000-801bbb80)KD: loaded symbols for "ntoskrnl.exe"KD: deferring symbol load for "atapi.sys" at fc810000KD: deferring symbol load for "diskdump.sys" at fc800000KD: deferring symbol load for "hal.dll" at 80400000KD: deferring symbol load for "atapi.sys" at 80010000KD: deferring symbol load for "SCSIPORT.SYS" at 80013000KD: deferring symbol load for "Atdisk.sys" at 80001000KD: deferring symbol load for "Scsidisk.sys" at 8001b000KD: deferring symbol load for "Fastfat.sys" at 80372000Unable to read image header for Floppy.SYS at fc820000 - status c0000001*** Contents Deleted ***KD: deferring symbol load for "srv.sys" at fc9e0000KD: deferring symbol load for "ntdll.dll" at 77f80000finished re-loading all kernel symbolsNT!_PspUnhandledExceptionInSystemThread+0x18:80131ff8 b801000000 mov eax,0x1kd> Observe que o depurador do kernel foi "Não é possível ler o cabeçalho de imagem para Floppy em fc820000 - status c0000001". Essa mensagem é normal, pois o cabeçalho de determinado driver não estiver atualmente na memória.

Verificação de tempo de criação com! drivers

Use o ! drivers comando para listar os drivers atualmente carregados na memória. Fazer anotação das datas e horas dos drivers e se eles podem ser carregados. (As colunas tamanho de código e dados no exemplo a seguir são removidas para se ajustar à largura do artigo.)kd> !driversBase Code Size Data Size Driver Name Creation Time80100000 Ntoskrnl.exe Fri May 26 18:18:36 199580400000 Hal.dll Thu May 11 13:54:18 199580010000 Atapi.sys Tue May 23 21:01:41 199580013000 Scsiport.sys Fri May 05 23:11:06 199580001000 Atdisk.sys Fri May 05 23:10:40 19958001b000 Scsidisk.sys Fri May 05 23:11:01 199580372000 Fastfat.sys Mon May 22 23:57:13 1995fc820000 Floppy.sys Header Paged Outfc830000 Scsicdrm.sys Wed May 10 21:57:03 1995fc840000 Fs_Rec.sys Header Paged Outfc850000 Null.sys Header Paged Outfc860000 Beep.sys Header Paged Outfc870000 I8042prt.sys Fri May 05 23:10:42 1995fc880000 Mouclass.sys Fri May 05 23:10:45 1995fc890000 Kbdclass.sys Fri May 05 23:10:44 1995fc8b0000 Videoprt.sys Fri May 05 23:10:05 1995fc8a0000 S3.sys Fri May 19 21:18:06 1995fc8c0000 Vga.sys Fri May 05 23:10:10 1995fc8d0000 Msfs.sys Fri May 05 23:11:57 1995fc8e0000 Npfs.sys Fri May 05 23:11:40 1995fc900000 Ndis.sys Mon May 22 20:23:18 1995fc8f0000 El59x.sys Fri Feb 10 16:18:09 1995fc940000 Tdi.sys Fri May 05 23:13:09 1995fc920000 Nbf.sys Mon May 08 15:00:47 1995fc950000 Netbios.sys Fri May 05 23:13:19 1995fc960000 Parport.sys Header Paged Outfc970000 Parallel.sys Header Paged Outfc980000 Serial.sys Fri May 05 23:11:20 1995fc990000 Afd.sys Header Paged Outfc9a0000 Rdr.sys Wed May 17 17:18:16 1995fc9e0000 Srv.sys Wed May 24 21:56:59 1995TOTAL: 1ab460 (1709 kb) 3b7c0 ( 237 kb) ( 0 kb 0 kb)kd> Observe o tempo de criação do arquivo, que é a data em que o arquivo é compilado. Essa data é próxima a carimbo Date\Time no arquivo real ao visualizar a subpasta Winnt\System32\Drivers usando o Gerenciador de arquivos. Se você se inscrever para Microsoft Developers Network (MSDN) ou tiver o Windows Device Driver Kit (DDK), a ferramenta de Link.exe pode ser usada para confirmar que o arquivo Dbg é o mesmo arquivo que foi criado quando o driver foi compilado. A "data e hora" no exemplo a seguir corresponde a "criar horário" de NetBIOS na saída acima. Use Link.exe para verificar a "data e hora" do arquivo Dbg:

LINK - dump - cabeçalhos \symbols\sys\netbios.dbgMicrosoft (R) COFF arquivo binário Dumper versão 3.00.5270 Copyright (C) Microsoft Corp 1995 1992. Todos os direitos reservados. Despejo de arquivo Netbios.dbg

assinatura 4944 0 sinalizadores 306 características de máquina (i386) 14C2FAAE94F data e hora 05 de maio de sexta-feira 23:13:19 1995

8D0B checksum de imagem 10000 base do tamanho da imagem 70A0 de imagem* * Conteúdo excluído * * se o ! drivers comando produz todas as linhas que se parecem com o seguinte, uma tabela importante o despejo está corrompida. Análise adicional do despejo de talvez não seja possível.

Não é possível ler DosHeader no 0583002a - status 00000000 não é possível ler DosHeader no 0587002a - status 00000000 não é possível ler DosHeader no 0588002a - status 00000000 não é possível ler DosHeader no 058a002a - status 00000000 não é possível ler DosHeader no 058c002a - status 00000000

Unassembling uma função

Os arquivos de símbolos permitem que o depurador de kernel fazer referência a funções e variáveis globais pelo nome. Ponto Verifique algumas funções desmontadas para certificar-se de que pareçam adequadas. Muitas funções são compilador otimizado e não necessariamente de acordo com os exemplos abaixo. Funções de compilador otimizado são identificadas por FPO entre parênteses no nome da função. Funções normalmente começam com o "push ebp" ou "mov eax, fs [000000000]." Conhecimento básico de linguagem de máquina e experiência permitirá um reconhecer essas funções.

  • Lista módulos carregados x *!

  • Lista de símbolos de um módulo específico (por exemplo, Ntoskrnl.exe). NT! *

  • Selecione uma função ou seja unassemble não compilador otimizado. u NT! _NtUnlockFile

Símbolos válidos

kd> u NT!_NtUnlockFileu NT!_NtUnlockFileNT!_NtUnlockFile:80156bd8 64a100000000     mov     eax,fs:[00000000]80156bde 55               push    ebp80156bdf 8bec             mov     ebp,esp80156be1 6aff             push    0xff80156be3 68200d1080       push    0x80100d2080156be8 68304f1380       push    0x80134f3080156bed 50               push    eax80156bee 64892500000000   mov     fs:[00000000],espkd> 

O unassembly da função deve ser semelhante ao texto acima; No entanto, o unassembly pode sofrer alterações. Se o unassembly parecer correta, você pode assumir que os símbolos carregou corretamente para este módulo. Unassembly seguinte começa com "jnz NT! _NTUnlockFile + 0x22." Obviamente, o início de uma função não seria iniciado com um código de instrução de salto. Verifique novamente a árvore de símbolo.

Símbolos incorretos

kd> u NT!_NTUnlockFileu NT!_NTUnlockFileNT!_NtUnlockFile:801574a4 7520             jnz     NT!_NtUnlockFile+0x22 (801574c6)801574a6 6a00             push    0x0801574a8 8d45dc           lea     eax,[ebp-0x24]801574ab 50               push    eax801574ac 53               push    ebx801574ad ff356c361480     push    dword ptr [NT!_CcNoDelay+0x4 (8014366c)]801574b3 6a01             push    0x1801574b5 ff7508           push    dword ptr [ebp+0x8] 

Símbolos do Service Pack

Há momentos em que é difícil de corresponder os símbolos com uma determinada instalação. Em algum momento, um serviço poderia ter sido adicionado necessário copiar arquivos a partir do CD de instalação do Windows, copiar sobre arquivos que foram atualizados com o service pack. Certifique-se de reaplicar o service pack e os discos de suporte a terceiros após alterar a configuração do sistema, que copia arquivos do CD de instalação do Windows. Os símbolos devem ser aplicados na mesma ordem da instalação.

INFORMAÇÕES ADICIONAIS

Para localizar a série Kernel Debug como a dos artigos, procure a palavra-chave: debugref. Técnicas de símbolo do WinDBG 2.0. x Na versão de depurador 2.0. x e posteriores do Microsoft Debuggers etapas de verificação de símbolo adicionais que podem ser usados. Para obter mais informações, consulte o seguinte site da Microsoft:

Kit de desenvolvimento de drivers

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×