Informações de instalação do símbolo de depuração do Windows NT

Traduções deste artigo Traduções deste artigo
ID do artigo: 138258 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo fornece informações detalhadas sobre como configurar o Microsoft Windows NT símbolo árvores, bem como dicas de configuração avançada e truques.

Mais Informações

Conteúdo do artigo

  • Informações gerais
  • Configuração personalizada símbolo árvores
  • Único processador processador versus múltipla
  • Personalizado HAL.dll
  • Usando símbolos no depurador
  • Verificando os símbolos
  • Verificação avançada de símbolo
  • Versões selecionadas

Informações gerais

Arquivos de símbolo de depuração (símbolos) são necessários para fazer o kernel e o modo de usuário no Windows NT. símbolos de depuração fornecem uma maneira referência variáveis globais e função nomes no executável carregado.

Símbolos são produzidos pelo vinculador. Eles são extraídos fora do produto comercial e salvos em um arquivo separado (.dbg). Isso reduz consideravelmente o tamanho do arquivo que diminui o tempo de carregamento de arquivo e, portanto, aumenta o desempenho do sistema. Ele também reduz o número de disquetes de instalação. Símbolos representam nomes de função/API e variáveis globais.

O arquivo .dbg contém informações simbólicas para cada arquivo. Eles podem ser encontrados na instalação do CD-ROM no \Support\Debug\[i386 | mips] \Symbols. Eles também podem ser encontrados no servidor de compilação do NT. O local é \\Ntbuilds\Release\Usa\Build###\[x86 | mips |alpha]\Fre.srv\symbols.

O diretório de símbolos é dividido em sete subpastas, chamadas extensão subdiretórios (Observe que muitos dos arquivos símbolo nesses diretórios são modo de usuário):

COM - símbolos para todos os arquivos terminando em .com ir aqui
Painel de controle - símbolos para todos os arquivos terminado em .cpl ir aqui.
DLL - símbolos para todos os arquivos .dll, terminando ir aqui
DRV - símbolos para todos os arquivos terminando em .DRV ir aqui
EXE - símbolos para todos os arquivos terminando em .exe ir aqui
SCR - símbolos para todos os arquivos terminando em .SCR ir aqui
SYS - símbolos para todos os arquivos .sys, terminando ir aqui.

Símbolos devem coincidir com versões de arquivo:

Símbolos de uma compilação diferente fornecem informações erradas e enviar os desenvolvedores perseguir sombras e gastar um tempo considerável. Seleção de duas vezes com o cliente que criar o cliente está executando e se o cliente tem os patches instalados. A tela STOP do kernel exibe o número da compilação do kernel.

Compilações de patch:

Patch compilações, como service packs exigem um conjunto especial de símbolos, que é uma combinação de compilação base e os símbolos corrigidos.

Configuração de árvores de símbolo personalizado

Lembre-se de que os símbolos devem coincidir com os arquivos instalados no computador do cliente. Geralmente, você precisa criar um conjunto personalizado de símbolos apenas para um determinado cliente.

Observação : árvores de símbolo completo pode levar mais de 30 MB de espaço em disco.
  1. Crie um subdiretório para armazenar seu conjunto de símbolo de cliente. Por exemplo:

    C:\MYSYMBOLS
  2. Sempre comece com o número da versão base do Windows NT. Copie os seguintes arquivos da instalação de CD-ROM para a versão apropriada:

    XCOPY [Unidade de CD] \SUPPORT\DEBUG\I386 C:\MYSYMBOLS /S.
  3. Copie símbolos para os arquivos binários do Service Pack apropriados sobre sua árvore personalizado. Símbolos de Service Pack podem ser encontrados nos servidores listados na seção abaixo intitulados "símbolo locais."
  4. Copie quaisquer patches de terceiros, como símbolos SSD Compaq para sua árvore de símbolo personalizado. Talvez você precise obter esses símbolos do fornecedor. Observação : as etapas 3 e 4 talvez precise ser revertida dependendo da ordem que elas foram instaladas pelo cliente. Coincide com as etapas do cliente.
  5. Se o servidor tiver hotfixes instalados, você precisará obter o símbolo correspondente para esse hotfix. Se um arquivo de símbolo não é fornecido com o hotfix, você precisará contatar o Atendimento Microsoft para saber sobre a disponibilidade desses símbolos. Copie o símbolo atualizado sobre sua árvore de símbolo personalizado. Certifique-se de que você coloque na subpasta correta (por exemplo, Sys, exe, dll, etc..).

Único processador processador versus múltipla

Windows NT usa um núcleo especial para sistemas SMP. Durante a instalação deste kernel é renomeado. É importante que você renomeie também o arquivo SYMBOL.DBG para depuração.
Ntoskrnl.exe NTOSKRNL.DBG = processador único NTKRNLMP.EXE. NTKRNLMP.DBG = Vários processadores

  1. Se você tiver um sistema com vários processadores, faça o seguinte. Em sua árvore de símbolo personalizado no \SYMBOLS\EXE existem dois arquivos de kernel. Renomear NTOSKRNL.DBG para NTOSKRNL.UNI.
  2. Copie NTKRNLMP.DBG para NTOSKRNL.DBG.

Personalizado HAL.dll

Algumas plataformas de hardware requerem um driver de camada de abstração de hardware especial. Como o kernel, HAL personalizado é renomeado durante o processo de instalação. Aqui está uma lista de HALs comuns:

Arquivos HAL para computadores I386:
              Uncompressed
Filename      Size (bytes) Description
-------------------------------------------------------------------------
HAL.DLL       48,416       Standard HAL for Intel systems
HAL486C.DLL   47,376       HAL for 486 c step processor
HALAPIC.DLL   63,616       Uniprocessor version of HALMPS.DLL
HALAST.DLL    46,416       HAL for AST SMP systems
HALCBUS.DLL   79,776       HAL for Cbus systems
HALMCA.DLL    45,488       HAL for MCA-based systems (PS/2 and others)
HALMPS.DLL    65,696       HAL for most Intel multiprocessor systems
HALNCR.DLL    79,392       HAL for NCR SMP machines
HALOLI.DLL    40,048       HAL for Olivetti SMP machines
HALSP.DLL     52,320       HAL for Compaq Systempro
HALWYSE7.DLL  40,848       HAL for Wyse7 systems

HAL files for DEC Alpha Computers:

              Uncompressed
Filename      Size (bytes) Description
--------------------------------------------------------------------------
HAL0JENS.DLL  56,800       Digital DECpc AXP 150 HAL
HALALCOR.DLL  69,120       Digital AlphaStation 600 Family
HALAVANT.DLL  66,752       Digital AlphaStation 200/400 Family HAL
HALEB64P.DLL  70,528       Digital AlphaPC64 HAL
HALGAMMP.DLL  72,896       Digital AlphaServer 2x00 5/xxx Family HAL
HALMIKAS.DLL  67,040       Digital AlphaServer 1000 Family Uniprocessor
HAL
HALNONME.DLL  65,376       Digital AXPpci 33 HAL
HALQS.DLL     65,088       Digital Multia MultiClient Desktop HAL
HALSABMP.DLL  72,736       Digital AlphaServer 2x00 4/xxx Family HAL

HAL files for MIPS Computers:

              Uncompressed
Filename      Size (bytes) Description
--------------------------------------------------------------------------
HALACR.DLL    43,648       ACER HAL
HALDTI.DLL    68,288       DESKStation Evolution
HALDUOMP.DLL  41,728       Microsoft-designed dual MP HAL
HALFXS.DLL    42,016       MTI with a r4000 or r4400
HALFXSPC.DLL  42,176       MTI with a r4600
HALNECMP.DLL  44,736       NEC dual MP
HALNTP.DLL    116,000      NeTpower FASTseries
HALR98MP.DLL  127,232      NEC 4 processor MP
HALSNI4X.DLL  95,520       Siemens Nixdorf UP and MP
HALTYNE.DLL   68,032       DESKstation Tyne

HAL files for PPC Computers:

              Uncompressed
Filename      Size (bytes) Description
--------------------------------------------------------------------------
HALCARO.DLL   169,504      HAL for IBM-6070
HALEAGLE.DLL  206,208      HAL for Motorola PowerStack and Big Bend
HALFIRE.DLL   136,576      Hal for Powerized_ES,
                                   Powerized_MX, and
                                   Powerized_MX MP
HALPOLO.DLL   169,152      HAL for IBM-6030
HALPPC.DLL    169,184      HAL for IBM-6015
HALWOOD.DLL   95,616       HAL for IBM-6020


Como determinar qual HAL usar:

Durante a instalação um arquivo de log de texto é criado. Este arquivo pode informá-lo sobre o nome original do HAL.
  1. Vá para a subpasta %systemroot%\REPAIR.
  2. Execute ATTRIB -R -H -S SETUP.LOG para tornar visível o arquivo.
  3. Abra o arquivo no bloco de notas e procure HAL.
Observação: Essa mesma técnica pode ser útil para verificar se um kernel especial também é usado.

Vá para o símbolo HAL da instalação:
  1. Vá para a árvore de símbolo personalizado em \SYMBOLS\DLL.
  2. Renomeie HAL.DBG para HAL.X86.
  3. Copie "Custom HLL.DBG" para HAL.DBG.

Usando símbolos no depurador

Um depurador do Windows NT, como I386KD.EXE, procura símbolos nos seguintes locais:
Variável de ambiente do sistema _NT_ALT_SYMBOL_PATH
Variável de ambiente _NT_SYMBOL_PATH sistema

Esses locais são definidos por meio de variáveis de ambiente do sistema. Eles geralmente são configurados por um arquivo de lote de depuração usando o comando SET. O _NT_ALT_SYMBOL_PATH é opcional. Por exemplo:
Definir _NT_SYMBOL_PATH = K:\NT35-SP3\SYMBOLS
Definir _NT_ALT_SYMBOL_PATH = c:\WINNT\SYMBOLS

Observação : O diretório de símbolos é o diretório diretamente acima de subdiretórios extensão (isto é, se o arquivo de símbolo de kernel, NTOSKRNL.DBG, está localizado em C:\DEBUG\511\I386\SYMBOLS\EXE\NTOSKRNL.DBG. O _NT_SYMBOL_PATH deve ser definido como C:\DEBUG\511\I386\SYMBOLS

Como usar caminhos:

Um bom uso desses vários caminhos é para manter árvores de símbolo estático para cada versão do Windows NT. Você simplesmente apontar seus caminhos de símbolo para cada versão e Service Pack conforme necessário. Por exemplo, para um sistema 1057 com o SP2 instalado você pode usar o seguinte:
Definir _NT_ALT_SYMBOL_PATH = c:\NT351-SP2\SYMBOLS
Definir _NT_SYMBOL_PATH = K:\NT351-1057\SYMBOLS

O depurador tenta usar os símbolos de SP pela primeira vez. [Os símbolos de Service Pack não incluem os símbolos de compilação base neste caso, somente os símbolos de SP.] Se o depurador não encontrar um símbolo específico na árvore de SP ele procura-lo na árvore de símbolo 1057.

Ordem de pesquisa:

Os vários caminhos de símbolo são pesquisados na ordem listada acima. O primeiro arquivo de símbolo com o nome correto é encontrado é usado. No exemplo acima, _NT_ALT_SYMBOL_PATH = c:\NT351-SP2\SYMBOLS é o primeiro pesquisado.

Substituição de variável de ambiente:

I386KD oferece suporte a uma opção de linha de comando "-y" onde você pode especificar um caminho de símbolo. No entanto, usar esta opção substitui as variáveis de ambiente existente.

Alterar o caminho na surgir:

Você pode alterar o caminho de pesquisa do símbolo a qualquer momento no depurador emitindo "! Sympath" comando. Por exemplo:
! SYMPATH C:\SYMBOLS.

Verificando os símbolos

! RECARREGAR:

Depois de você ter chegado ao "kd >"prompt pela primeira vez, você deve digitar"! RECARREGAR". Isso faz com que as informações simbólicas para ser recarregado e sincronizados. Se você receber o erro "PsLoadedModuleList é NULL!", você provavelmente terá os errado símbolos carregados. Certifique-se que o arquivo do HAL.DBG e NTOSKRNL.DBG correto instalado para o computador que você está depurando.

! PROCESSO:

Símbolos também podem ser verificados, digitando "! PROCESS" Se você receber o erro, "Não é possível localizar processo lista cabeça", você provavelmente terá os errado símbolos carregados.

KB:

Se o rastreamento de pilha tiver intervalos na lista Nome da função, isso indica que estão faltando símbolos. Faltando funções também pode indicar uma pilha corrompida mas isso é raro. Verifique os símbolos antes de declarar uma pilha corrompida. Além disso, examine os endereços de retorno na pilha. Eles devem ser maiores do que 8000000.

! SYMPATH:

Símbolos incorretos podem ser corrigidos indo para outra janela de comando, copiar os símbolos corretos e fazendo uma! recarregar o depurador ou especificando o caminho correto com! SYMPATH symbol_path.

Verificação avançada de símbolo

Às vezes, os clientes não sabem quais versões de driver que tenham instalado em seus computadores. Talvez eles instalaram um hotfix para o NTFS, mas eles não souber qual número de bug. Talvez seja necessário determinar manualmente quais arquivos .dbg são necessários.

A melhor maneira de verificar absolutamente se destino e do dbg correspondência é exibir seu valor de soma de verificação. Esse valor é armazenado dentro do cabeçalho do arquivo.

Observação: Para saber mais sobre o sistema operacional formato de arquivo procure MSDN "Formato de arquivo de execução portátil". O cabeçalho do PE contém números de versão, vincular date\time etc..

O plano geral aqui é Descubra primeiro a soma de verificação dos arquivos de clientes e, em seguida, localizar um arquivo dbg que tenha uma soma de verificação correspondente.

Há várias maneiras para extrair o chksum de destino e o dbg. Se você tiver acesso aos arquivos, você pode usar o seguinte. Este exemplo assume que você estiver interessado em arquivo NTOSKRNL.

LINK32:

Pode ser encontrado esse utilitário no subdiretório NT criar \MSTOOLS:
LINK32.EXE - DUMP - CABEÇALHOS NTOSKRNL.EXE LINK32.EXE - DUMP - CABEÇALHOS NTOSKRNL.DBG

DUMPBIN:

Esse utilitário pode ser encontrado no diretório bin Visual C:
DUMPBIN.EXE /HEADERS NTOSKRNL.EXE DUMPBIN.EXE /HEADERS NTOSKRNL.DBG

Se você estiver usando um depurador em um sistema ou um despejo de memória, você pode encontrar a soma de verificação do arquivo de destino exibindo o cabeçalho do arquivo na memória.
  1. ! DRIVERS - irá lhe fornecer endereço base do driver.
  2. dd baseaddr + d8 L1

Versões selecionadas

Se você instalar versões de depuração verificada de arquivos do Windows NT será necessário tornar arquivos de símbolos dbg disposições especiais para eles. Alguns hotfix verificado compilações possui as informações simbólicas incorporadas no arquivo de destino. Nesses casos, apenas fazer uma cópia do arquivo e denomine *.DBG. Coloque o arquivo no diretório de sub-rotina símbolo normal, ou seja, \SYMBOLS\EXE.

Todas as compilações lançadas publicamente seleção tem arquivos dbg separado assim como as versões livres. No entanto, o dbg para versões selecionadas e livres são diferentes. Por exemplo, o DDK do Microsoft NT contém uma totalmente verificada do NT. Ele também contém um símbolo completo definido para acompanhá-lo.

Observação : verificação de versões do NT kernel são as mesmas para os sistemas multiprocessador e Uniprocessor.

Símbolo de locais

Produto de varejo:
CD-ROM \SUPPORT\DEBUG\I386\SYMBOLS
\\NTX86X\FREEBINS.XXX

Propriedades

ID do artigo: 138258 - Última revisão: quarta-feira, 1 de novembro de 2006 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 3.1
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Advanced Server 3.1
Palavras-chave: 
kbmt kbusage KB138258 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 138258

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