Les informations sur l'installation des symboles de débogage de Windows NT

Traductions disponibles Traductions disponibles
Numéro d'article: 138258 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article fournit des informations détaillées sur la façon de configurer des arborescences de symboles Microsoft Windows NT, ainsi que des astuces de configuration avancées.

Plus d'informations

Sommaire de l'article

  • Informations générales
  • Configuration des arborescences de symbole personnalisé
  • Processeur de processeur et Multi unique
  • HAL.dll personnalisé
  • À l'aide des symboles dans le débogueur
  • Vérifier les symboles
  • Vérification de caractères spéciaux avancés
  • Versions Checked

Informations générales

Fichiers de symboles de débogage (symboles) sont nécessaires pour faire du noyau et utilisateur en mode débogage dans les symboles de Windows NT offrent un moyen pour faire référence à des variables globales et de noms dans le fichier exécutable chargé de la fonction.

Symboles sont générés par l'éditeur de liens. Ils sont supprimés du produit commercial et enregistrés dans un fichier (.dbg) distinct. Cela réduit considérablement la taille des fichiers qui diminue les temps de chargement de fichier et augmente ainsi les performances du système. Il réduit également le nombre de disquettes d'installation. Symboles représentent des noms de fonction/API et des variables globales.

Le fichier .dbg contient des informations symboliques pour chaque fichier. Ils peuvent être trouvés sur le CD-ROM d'installation dans \Support\Debug\[i386 | mips] \Symbols. Ils peuvent également être trouvés sur le serveur de génération de NT. L'emplacement est \\Ntbuilds\Release\Usa\Build###\[x86 | mips |alpha]\Fre.srv\symbols.

Le répertoire Symbols est divisé sept sous-répertoires, appelées extension sous-répertoires (Notez que la plupart des fichiers de symboles dans ces répertoires sont en mode utilisateur) :

COM - symboles pour tous les fichiers se terminant par .com aller ici
Panneau de configuration - symboles pour tous les fichiers se terminant par .cpl aller ici.
DLL - symboles pour tous les fichiers se terminant par .dll aller ici
DRV - symboles pour tous les fichiers se terminant par .DRV aller ici
EXE - symboles pour tous les fichiers se terminant par .exe aller ici
SCR - symboles pour tous les fichiers se terminant par .scr aller ici
SYS - symboles pour tous les fichiers se terminant par .sys aller ici.

Symboles doivent correspondre aux versions de fichier :

Symboles à partir d'une version différente fournissent des informations erronées et envoyer les développeurs de repérage des ombres et perdent un temps considérable. Double avec le client que le client de génération est en cours d'exécution et si le client dispose de tous les correctifs installés. L'écran d'arrêt noyau affiche le numéro de version du noyau.

Corrigée builds :

Générations patched tels que les Service Packs nécessitent un ensemble spécial de symboles, qui est une combinaison de la version de base et les symboles corrigées.

Définition de symboles personnalisée arborescences

N'oubliez pas que les symboles doivent correspondre les fichiers installés sur l'ordinateur d'un client. Vous devez souvent créer un jeu de symboles personnalisé pour un client particulier.

Remarque : arborescences symbole complète peut prendre plus de 30 Mo d'espace disque.
  1. Créez un sous-répertoire pour stocker votre jeu de symboles de client. Par exemple :

    C:\MYSYMBOLS
  2. Commencez toujours par le numéro de version de base Windows NT. Copiez les fichiers suivants à partir du CD-ROM d'installation pour la version appropriée :

    XCOPY [Lecteur_cd] \SUPPORT\DEBUG\I386 C:\MYSYMBOLS /S.
  3. Copiez les symboles pour les fichiers binaires du Service Pack appropriés sur votre arborescence personnalisée. Vous pouvez trouver des symboles du Service Pack sur les serveurs répertoriés dans la section ci-dessous intitulées «emplacements de symboles».
  4. Copier tous les correctifs tiers tel que symboles Compaq SSD vers votre arborescence de symboles personnalisée. Vous devrez peut-être obtenir ces symboles auprès du fournisseur. Remarque : les étapes 3 et 4 devrez inversé selon l'ordre dans lequel elles ont été installées par le client. Correspondent aux étapes du client.
  5. Si le serveur a des correctifs installés, vous devez obtenir le symbole correspondant pour ce correctif. Si un fichier de symbole n'est pas fourni avec le correctif, vous devez contacter les services de support technique Microsoft pour obtenir des informations sur la disponibilité de ces symboles. Copiez le symbole de mise à jour sur votre arborescence de symboles personnalisée. Assurez-vous que vous le placez dans le sous-dossier approprié (par exemple, Sys, exe, dll, etc..).

Processeur de processeur et Multi unique

Windows NT utilise un noyau spécial pour les systèmes SMP. Ce noyau est renommé pendant l'installation. Il est important également renommer le fichier SYMBOL.DBG pour le débogage.
Ntoskrnl.exe Ntoskrnl.DBG = processeur unique Ntkrnlmp.exe. Ntkrnlmp.dbg = Plusieurs processeurs

  1. Si vous avez un système multiprocesseur, procédez comme suit. Sous votre arborescence de symboles personnalisée dans \SYMBOLS\EXE il existe deux fichiers de noyau. Changement de nom NTOSKRNL.DBG à NTOSKRNL.UNI.
  2. Copiez Ntkrnlmp.dbg Ntoskrnl.dbg.

HAL.dll personnalisé

Certaines plates-formes de matériel requièrent un pilote de couche d'abstraction matérielle spécial. Comme le fichier noyau, la couche d'ABSTRACTION est renommé pendant le processus d'installation. Voici une liste des couches d'abstraction matérielle courantes :

Fichiers HAL pour ordinateurs 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


Procédure pour déterminer quelle couche HAL à utiliser :

Un fichier journal texte est créé pendant l'installation. Ce fichier peut vous informer sur le nom d'origine de la couche d'abstraction matérielle (HAL).
  1. Accédez au sous-répertoire %systemroot%\REPAIR.
  2. Exécutez ATTRIB -R -H -S Setup.log pour afficher le fichier.
  3. Affichez le fichier dans le bloc-notes Microsoft et recherche de couche d'abstraction MATÉRIELLE.
Remarque : Cette même technique peut être utile pour vérifier si un noyau spécial est également utilisé.

Atteindre le symbole de couche d'abstraction MATÉRIELLE le programme d'installation :
  1. Accédez à votre arborescence de symboles personnalisée sous \SYMBOLS\DLL.
  2. Renommez HAL.dbg en HAL.x86.
  3. Copier «Custom HLL.DBG» dans HAL.dbg.

À l'aide des symboles dans le débogueur

Un débogueur Windows NT, tels que I386KD.EXE, recherche les symboles dans les emplacements suivants :
Variable d'environnement système _NT_ALT_SYMBOL_PATH
Variable d'environnement _NT_SYMBOL_PATH système

Ces emplacements sont définies par l'intermédiaire de variables d'environnement système. Ils sont généralement configurés par un fichier de commandes de débogage à l'aide de la commande SET. Le _NT_ALT_SYMBOL_PATH est facultatif. Par exemple :
définir _NT_SYMBOL_PATH = K:\NT35-SP3\SYMBOLS
définir _NT_ALT_SYMBOL_PATH = c:\WINNT\SYMBOLS

Remarque : le répertoire de symboles est celui situé immédiatement au-dessus les sous-répertoires d'extension (autrement dit, si le fichier de symboles de noyau, Ntoskrnl.dbg, se trouve dans C:\DEBUG\511\I386\SYMBOLS\EXE\NTOSKRNL.DBG. Le _NT_SYMBOL_PATH doit être définie à C:\DEBUG\511\I386\SYMBOLS

Procédure pour utiliser des chemins d'accès :

Une bonne utilisation de ces différents chemins est pour le maintien des arborescences de symbole static pour chaque version de Windows NT. Vous pointez simplement sur vos chemins d'accès aux symboles pour chaque version et le Service Pack si nécessaire. Par exemple, pour un système 1057 avec SP2 installé, vous pouvez utiliser les éléments suivants :
définir _NT_ALT_SYMBOL_PATH = c:\NT351-SP2\SYMBOLS
définir _NT_SYMBOL_PATH = K:\NT351-1057\SYMBOLS

Le débogueur tente tout d'abord d'utiliser les symboles du Service Pack. [Les symboles du Service Pack n'incluent pas les symboles des version de base dans ce cas, seuls les symboles du Service Pack]. Si le débogueur ne trouve pas un symbole particulier dans l'arborescence de la SP il le recherche dans l'arborescence de symboles 1057.

Ordre de recherche :

Les différents chemins d'accès aux symboles sont recherchés dans l'ordre indiqué ci-dessus. Le premier fichier de symboles avec le nom correct est rencontré est utilisé. Dans l'exemple ci-dessus, _NT_ALT_SYMBOL_PATH = c:\NT351-SP2\SYMBOLS est le premier objet d'une recherche.

Remplacement de variable d'environnement :

I386KD prend en charge un commutateur de ligne de commande «-y» dans laquelle vous pouvez spécifier un chemin d'accès aux symboles. Toutefois, l'utilisation de ce commutateur remplace vos variables d'environnement existant.

Modifiez le chemin d'accès à la volée :

Vous pouvez modifier le chemin de recherche de symbole à tout moment dans le débogueur en émettant "! Sympath" commande. Par exemple :
! C:\SYMBOLS SYMPATH.

Vérifier les symboles

! RECHARGEMENT :

Une fois que vous avez obtenu le «kd > "invite pour la première fois, vous devez taper «! RELOAD". Ainsi, les informations symboliques être rechargé et synchronisés. Si vous obtenez l'erreur «PsLoadedModuleList est NULL!», vous avez probablement chargé des symboles incorrects. Assurez-vous que vous avez le bon fichier HAL.dbg et Ntoskrnl.dbg installé pour l'ordinateur que vous déboguez.

! PROCESSUS :

Symboles peuvent également être vérifiées en tapant «! PROCESS "Si vous obtenez l'erreur, «Impossible de trouver tête de liste de processus», vous avez probablement chargé des symboles incorrects.

KO :

Si la trace de la pile a des trous dans la liste Nom de fonction, cela indique qu'il manque des symboles. Manque de fonctions peut également indiquer une pile endommagée mais c'est relativement rare. Vérifiez vos symboles avant de déclarer une pile endommagée. En outre, examinez les adresses de retour dans la pile. Ils doivent tous être supérieures à 8000000.

! SYMPATH :

Symboles incorrects peuvent être corrigés en accédant à une autre fenêtre de commande, copier les symboles corrects et en effectuant un! rechargement sur le débogueur ou en spécifiant le chemin d'accès correct avec! SYMPATH symbol_path.

Vérification de caractères spéciaux avancés

Parfois les clients ne savent pas quelles versions de pilote qu'ils ont installé sur leurs ordinateurs. Peut-être qu'ils installé un correctif pour le système de fichiers NTFS, mais ils ne savent pas quel numéro de bogue. Vous devrez peut-être déterminer manuellement les fichiers .dbg sont nécessaires.

Le meilleur moyen de vérifier absolument si cible et de dbg correspondance est pour afficher leur valeur de somme de vérification. Cette valeur est stockée à l'intérieur de l'en-tête de fichier.

Remarque : Pour en savoir plus sur le système d'exploitation format de fichier rechercher MSDN «Portable l'exécution de format de fichier.» L'en-tête PE contient des numéros de version, lier date\time, etc..

Le plan général ici consiste à savoir tout d'abord le checksum des fichiers clients, puis recherchez un fichier dbg qui a une somme à cocher correspondante.

Il existe de nombreuses façons pour extraire le chksum de la cible et le dbg. Si vous avez accès aux fichiers, vous pouvez utiliser la syntaxe suivante. Cet exemple suppose que vous êtes intéressé par le fichier NTOSKRNL.

LINK32 :

Cet utilitaire se trouve dans le sous-répertoire NT build \MSTOOLS :
LINK32.EXE - DUMP - EN-TÊTES NTOSKRNL.EXE LINK32.EXE - DUMP - EN-TÊTES NTOSKRNL.DBG

DUMPBIN :

Cet utilitaire peut être trouvé dans le répertoire bin Visual C :
DUMPBIN.EXE /HEADERS NTOSKRNL.EXE DUMPBIN.EXE /HEADERS NTOSKRNL.DBG

Si vous utilisez un débogueur sur un système ou un fichier de vidage sur incident, vous pouvez trouver la somme de contrôle du fichier cible en affichant l'en-tête du fichier en mémoire.
  1. ! DRIVERS - va donner adresse de base de pilote.
  2. jj baseaddr + d8 L1

Versions Checked

Si vous installez des versions debug vérifiée des fichiers Windows NT, vous devez rendre des fichiers de symbole dbg de dispositions spéciales pour elles. Certains correctifs vérifiée générations ont les informations symboliques intégrées dans le fichier cible. Dans ces cas, il vous suffit de faire une copie du fichier et nommez-le *.dbg. Placez le fichier dans le répertoire de sub symbole normal, c'est-à-dire \SYMBOLS\EXE.

Toutes les builds à cocher publiquement publiées ont des fichiers dbg distinct comme les versions libres. Toutefois, dbg pour checked et libres versions sont différentes. Par exemple, le Kit de développement de pilotes (DDK) de Microsoft NT contient une version vérifiée complète de NT. Elle contient également un symbole complète défini pour aller avec lui.

Remarque : vérification des versions du noyau NT sont les mêmes pour les systèmes multiprocesseur et monoprocesseur.

Emplacements de symbole

Produit de vente au détail :
CD-ROM \SUPPORT\DEBUG\I386\SYMBOLS
\\NTX86X\FREEBINS.XXX

Propriétés

Numéro d'article: 138258 - Dernière mise à jour: mercredi 1 novembre 2006 - Version: 2.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • 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 Édition Développeur
  • Microsoft Windows NT Advanced Server 3.1
Mots-clés : 
kbmt kbusage KB138258 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 138258
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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