Como verificar símbolos de depuração do Windows

Traduções de Artigos Traduções de Artigos
Artigo: 148660 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Os símbolos de depuração do Windows têm de ser verificados depois de iniciar o depurador do kernel (I386kd.exe | Windbg.exe). O depurador pode carregar e apresentar uma linha de comandos, mas se os símbolos estiverem incorrectos, futuros comandos depuração não referência correctas funções e variáveis, que conduz a esporádica resultados. Listados abaixo estão alguns sinalizadores de vermelho e um par de métodos de validade de ponto de verificação dos símbolos.

Mais Informação

Este artigo pressupõe que o depurador do kernel está em execução e carregou um ficheiro Memory.dmp ou estiver ligado a um computador remoto. Comandos apresentados não são totalmente documentados e são apresentadas apenas excerpts a partir da saída.

Conteúdo do artigo

  • Carregar o depurador de kernel
  • Verificar a hora de criação com! controladores
  • Utilizar o link.exe para verificar a hora de criação
  • Unassembling uma função
  • Símbolos do Service Pack

Carregar o depurador de kernel

Uma carga normal o depurador do kernel apresenta um dos seguintes pedidos:
KD > sistema de processador único

0: kd > sistema com vários processadores
O aviso ilustrado abaixo indica que o ficheiro de símbolos para o ficheiro Ntoskrnl.exe está incorrecto. Verifique para se certificar que o kernel multiprocessador ou uniprocessador adequado e HAL são copiados para a árvore de símbolo.

Exemplo:
Symbol search path is: C:\symbols
kd: crash dump initialized [c:\dump\memory.dmp]
could not determine the current processor, using zero
Kernel Version 1057 Free loaded @ 0x80100000
Bugcheck 0000001e : c0000005 80151d5b 00000000 00000001
*** Contents Deleted ***
16kd>
				
quando o depurador do kernel carrega o ficheiro Memory.dmp, o kernel versão, bem como a contagem de processador é apresentado nas primeiras linhas. Confirme que a contagem de processador corresponde ao kernel adequado e HAL. Controlador símbolo informações são apresentadas à medida que ambos os símbolos são carregados ou adiados.

Carga de exemplo:
Symbol search path is: C:\symbols
kd: crash dump initialized [c:\dump\memory.dmp]
Kernel Version 1057 Free loaded @ 0x80100000
Bugcheck 0000001e : c0000005 80151d5b 00000000 00000001
re-loading all kernel symbols
KD: unloading symbols for "ntoskrnl.exe"
KD: deferring symbol load for "ntoskrnl.exe" at 80100000
KD: 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 fc810000
KD: deferring symbol load for "diskdump.sys" at fc800000
KD: deferring symbol load for "hal.dll" at 80400000
KD: deferring symbol load for "atapi.sys" at 80010000
KD: deferring symbol load for "SCSIPORT.SYS" at 80013000
KD: deferring symbol load for "Atdisk.sys" at 80001000
KD: deferring symbol load for "Scsidisk.sys" at 8001b000
KD: deferring symbol load for "Fastfat.sys" at 80372000
Unable to read image header for Floppy.SYS at fc820000 - status c0000001
*** Contents Deleted ***
KD: deferring symbol load for "srv.sys" at fc9e0000
KD: deferring symbol load for "ntdll.dll" at 77f80000
finished re-loading all kernel symbols
NT!_PspUnhandledExceptionInSystemThread+0x18:
80131ff8 b801000000       mov     eax,0x1
kd>
				
Note que o depurador do kernel foi "Não é possível ler o cabeçalho de imagem para Floppy.sys no fc820000 - estado c0000001". Esta mensagem é normal porque o cabeçalho de controlador específico não está actualmente na memória.

Verificar a hora de criação com! controladores

Utilize o ! controladores comando para listar os controladores actualmente carregados na memória. Tornar nota das datas e horas dos controladores e se é ou não podem ser carregados. (As colunas de tamanho do código e tamanho dos dados no seguinte exemplo são removidas para se ajustar a largura do artigo.)
kd> !drivers
Base       Code Size Data Size  Driver Name        Creation Time
80100000                       Ntoskrnl.exe   Fri May 26 18:18:36 1995
80400000                            Hal.dll   Thu May 11 13:54:18 1995
80010000                          Atapi.sys   Tue May 23 21:01:41 1995
80013000                       Scsiport.sys   Fri May 05 23:11:06 1995
80001000                         Atdisk.sys   Fri May 05 23:10:40 1995
8001b000                       Scsidisk.sys   Fri May 05 23:11:01 1995
80372000                        Fastfat.sys   Mon May 22 23:57:13 1995
fc820000                         Floppy.sys   Header Paged Out
fc830000                       Scsicdrm.sys   Wed May 10 21:57:03 1995
fc840000                         Fs_Rec.sys   Header Paged Out
fc850000                           Null.sys   Header Paged Out
fc860000                           Beep.sys   Header Paged Out
fc870000                       I8042prt.sys   Fri May 05 23:10:42 1995
fc880000                       Mouclass.sys   Fri May 05 23:10:45 1995
fc890000                       Kbdclass.sys   Fri May 05 23:10:44 1995
fc8b0000                       Videoprt.sys   Fri May 05 23:10:05 1995
fc8a0000                             S3.sys   Fri May 19 21:18:06 1995
fc8c0000                            Vga.sys   Fri May 05 23:10:10 1995
fc8d0000                           Msfs.sys   Fri May 05 23:11:57 1995
fc8e0000                           Npfs.sys   Fri May 05 23:11:40 1995
fc900000                           Ndis.sys   Mon May 22 20:23:18 1995
fc8f0000                          El59x.sys   Fri Feb 10 16:18:09 1995
fc940000                            Tdi.sys   Fri May 05 23:13:09 1995
fc920000                            Nbf.sys   Mon May 08 15:00:47 1995
fc950000                        Netbios.sys   Fri May 05 23:13:19 1995
fc960000                        Parport.sys   Header Paged Out
fc970000                       Parallel.sys   Header Paged Out
fc980000                         Serial.sys   Fri May 05 23:11:20 1995
fc990000                            Afd.sys   Header Paged Out
fc9a0000                            Rdr.sys   Wed May 17 17:18:16 1995
fc9e0000                            Srv.sys   Wed May 24 21:56:59 1995
TOTAL:   1ab460 (1709 kb)  3b7c0 ( 237 kb) (    0 kb     0 kb)
kd>
				
nota a hora de criação do ficheiro, o que é a data em que o ficheiro é compilado. Esta data é parecido com marca Date\Time no ficheiro real quando visualizar a subpasta Winnt\System32\Drivers através do File Manager.

Se subscrever a Microsoft Developers Network (MSDN) ou tiver o Windows Device Driver Kit (DDK), Link.exe ferramenta pode ser utilizada para confirmar que Dbg é o mesmo ficheiro que foi criada quando o controlador foi compilado. O "carimbo de data data / hora" no exemplo abaixo corresponde a "Criar hora" da Netbios.sys na saída acima.

Utilize o link.exe para verificação "data" do ficheiro Dbg:
LINK - dump - cabeçalhos \symbols\sys\netbios.dbg
Microsoft (R) COFF ficheiro Dumper versão binária 3.00.5270
Copyright (C) Microsoft Corp 1992-1995. Todos os direitos reservados.

Informações de estado do ficheiro Netbios.dbg
assinatura 4944
sinalizadores 0
Computador C 14 (i386)
306 características
Carimbo de data 2FAAE94F data / hora sexta-feira 05 de May 19: 13: 23 1995
Soma de verificação 8D0B da imagem

10000 base da imagem

70A0 tamanho da imagem
** Conteúdo eliminado **

Se o ! controladores comando produz quaisquer linhas que se assemelham a seguinte, uma tabela importante a informação de estado está danificada. Mais análises das informações de estado poderão não ser possível.
Não é possível ler DosHeader ao 0583002a - estado 00000000
Não é possível ler DosHeader ao 0587002a - estado 00000000
Não é possível ler DosHeader ao 0588002a - estado 00000000
Não é possível ler DosHeader ao 058a002a - estado 00000000
Não é possível ler DosHeader ao 058c002a - estado 00000000

Unassembling uma função

Os ficheiros de símbolos de activar o depurador de kernel fazer referência a funções e variáveis globais pelo nome. Ponto verificar algumas das funções unassembled para garantir parecem adequadas. Muitas funções são compilador optimizado e não estejam em conformidade necessariamente com os exemplos abaixo. Compilador optimizado funções são identificadas por FPO em parêntesis no nome da função.

Funções normalmente começam com qualquer um dos "emissão ebp" ou "eax mov, fs [000000000]." Conhecimento básico de linguagem máquina e experiência permitirá uma para reconhecer estas funções.
  • Lista de módulos carregados
    x *!
  • Lista de símbolos para um módulo específico (por exemplo, Ntoskrnl.exe).
    x nt! *
  • Seleccione uma função para que seja desassemblar não compilador optimizado.
    u NT! _NtUnlockFile

Símbolos de boas

kd> u NT!_NtUnlockFile
u NT!_NtUnlockFile
NT!_NtUnlockFile:
80156bd8 64a100000000     mov     eax,fs:[00000000]
80156bde 55               push    ebp
80156bdf 8bec             mov     ebp,esp
80156be1 6aff             push    0xff
80156be3 68200d1080       push    0x80100d20
80156be8 68304f1380       push    0x80134f30
80156bed 50               push    eax
80156bee 64892500000000   mov     fs:[00000000],esp
kd>
				
Unassembly da função deve ser semelhante ao texto acima; no entanto, o unassembly sujeitas a alterações. Se o unassembly parecer correcta, pode assumir que os símbolos carregou correctamente para este módulo.

Unassembly seguinte começa com "jnz NT! _NTUnlockFile + 0 x 22." Obviamente, o início de uma função não seria iniciado com um código de instrução de ligação. Verifique novamente a árvore de símbolo.

Símbolos incorrectos

kd> u NT!_NTUnlockFile
u NT!_NTUnlockFile
NT!_NtUnlockFile:
801574a4 7520             jnz     NT!_NtUnlockFile+0x22 (801574c6)
801574a6 6a00             push    0x0
801574a8 8d45dc           lea     eax,[ebp-0x24]
801574ab 50               push    eax
801574ac 53               push    ebx
801574ad ff356c361480     push    dword ptr [NT!_CcNoDelay+0x4 (8014366c)]
801574b3 6a01             push    0x1
801574b5 ff7508           push    dword ptr [ebp+0x8]
				

Símbolos do Service Pack

Há alturas quando é difícil fazer corresponder os símbolos com uma determinada instalação. Em algum momento no tempo, um serviço pode ter sido adicionado que necessário copiar os ficheiros do CD-instalação ROM do Windows, que copiou os ficheiros que foram actualizados com service pack. Não se esqueça de voltar a aplicar o service pack e os discos de suporte de outros fabricantes depois de alterar a configuração do sistema, que copia ficheiros do CD-ROM de instalação do Windows. Os símbolos devem ser aplicados pela mesma ordem, a instalação.

OBTER INFORMAÇÕES ADICIONAIS

Para localizar a série de Kernel Debug como para dos artigos, procure a palavra-chave: debugref.

WinDbg 2.0.x técnicas de símbolo

Depurador versão 2.0.x em maior de depuradores Microsoft existem passos de verificação de símbolo adicionais que podem ser utilizados. Para mais informações, consulte o seguinte Web site da Microsoft:
Drivers Development Kit

Propriedades

Artigo: 148660 - Última revisão: 4 de março de 2009 - Revisão: 5.0
A informação contida neste artigo aplica-se a:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Windows Server 2008 for Itanium-Based Systems
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Microsoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Datacenter Edition (64-Bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (64-Bit x86)
  • Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 R2 Standard Edition (64-Bit x86)
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Small Business Server 2003 R2 Premium Edition
  • Microsoft Windows Small Business Server 2003 R2 Standard Edition
  • Microsoft Windows Small Business Server 2003, Premium Edition Service Pack 1 (SP1)
  • Microsoft Windows Small Business Server 2003 Standard Edition
  • Windows Essential Business Server 2008 Standard
  • Microsoft Windows XP 64-Bit Edition Version 2002
  • Microsoft Windows XP 64-Bit Edition Version 2003
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Home Edition N
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Professional 64-Bit Edition (Itanium)
  • Microsoft Windows XP Professional 64-Bit Edition (Itanium) 2003
  • Microsoft Windows XP Professional N
  • Microsoft Windows XP Professional x64 Edition
  • Windows Vista Enterprise 64-bit edition
  • Windows Vista Home Basic 64-bit edition
  • Windows Vista Home Premium 64-bit edition
  • Windows Vista Ultimate 64-bit edition
  • Windows 7 Beta
  • Windows Vista Business
  • Windows Vista Business 64-bit edition
  • Windows Vista Business N
  • Windows Vista Business N 64-bit Edition
  • Windows Vista Enterprise
  • Windows Vista Home Basic
  • Windows Vista Home Basic N
  • Windows Vista Home Basic N 64-bit Edition
  • Windows Vista Home Premium
  • Windows Vista Ultimate
Palavras-chave: 
kbmt kbinfo KB148660 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 148660

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com