Comment faire pour vérifier les symboles de débogage de Windows

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

Sommaire

Résumé

Les symboles de débogage Windows doivent être vérifiés après avoir démarré le débogueur de noyau (le fichier I386kd.exe | WinDBG.exe). Le débogueur peut charger et présenter une invite de commandes, mais si les symboles sont incorrects, les futures commandes de débogage ne référencent pas fonctions correctes et les variables, ce qui conduit à résultats sporadique. Vous trouverez ci-dessous quelques indicateurs rouges et quelques méthodes à tons directs à cocher validité des symboles.

Plus d'informations

Cet article suppose que le débogueur du noyau est en cours d'exécution et qu'il a chargé un fichier Memory.dmp ou qu'il est connecté à un ordinateur distant. Commandes présentées ne sont pas entièrement documentés et uniquement les extraits de la sortie sont affichés.

Sommaire de l'article

  • Charger le débogueur du noyau
  • Vérification de l'heure de création avec! pilotes
  • Heure de création de chèques à l'aide de LINK.exe
  • Une fonction de unassembling
  • Symboles du Service Pack

Charger le débogueur du noyau

Une charge normale du débogueur de noyau affiche un des invites suivantes :
KD > système monoprocesseur

0: kd > un système multiprocesseur
L'invite ci-dessous indique que le fichier de symboles pour le fichier Ntoskrnl.exe est incorrect. Vérifiez que le noyau multiprocesseur ou monoprocesseur appropriée et la couche HAL sont copiés dans l'arborescence de symboles.

Exemple :
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>
				
lorsque le débogueur de noyau charge le fichier Memory.dmp, le noyau version ainsi que le nombre de processeur est affiché dans les premières lignes. Confirmez que le compteur processeur correspond avec le noyau approprié et la couche d'abstraction matérielle (HAL). Informations sur les symboles de pilote sont affichées comme soit les symboles sont chargés ou différées.

Charge de l'exemple :
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>
				
Remarque que le débogueur de noyau a été «Impossible de lire l'en-tête de l'image pour Floppy.sys à fc820000 - état c0000001». Ce message est normal car l'en-tête de pilote particulier n'est pas actuellement en mémoire.

Vérification de l'heure de création avec! pilotes

Utilisez le ! pilotes commande pour répertorier les pilotes actuellement chargés en mémoire. Rendre Remarque des dates et heures des pilotes et ils peuvent ou non être chargés. (Les colonnes de la taille de code et la taille des données dans l'exemple suivant sont supprimées à la largeur de l'article.)
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>
				
Notez l'heure de création du fichier, qui correspond à la date que le fichier est compilé. Cette date est proche de tampon de Date\Time sur le fichier réel lorsque vous affichez le sous-dossier Winnt\System32\Drivers à l'aide du Gestionnaire de fichiers.

Si vous vous abonner à MSDN (Microsoft Developers Network) ou si vous avez Windows Device Driver Kit (DDK), le Link.exe outil peut être utilisé pour confirmer que le fichier est le même fichier a été créé lorsque le pilote a été compilé de DBG. La «date horodatage» dans l'exemple ci-dessous correspond à le «heure créer» de Netbios.sys dans la sortie ci-dessus.

Link.exe permet de rechercher la «date horodatage» du fichier Dbg :
LINK - dump - en-têtes \symbols\sys\netbios.dbg
Microsoft (R) COFF Binary File Dumper Version 3.00.5270
Copyright (C) Microsoft Corp 1992-1995. Tous droits réservés.

Vidage du fichier Netbios.dbg
signature 4944
indicateurs 0
Ordinateur C 14 (i386)
306 caractéristiques
2FAAE94F date horodateur Ven mai 05 23 : 13 : 19 1995
8D0B total de contrôle d'image

10 000 base d'image

70A0 taille d'image
** Contenu supprimés **

Si le ! pilotes commande produit toutes les lignes ressemblent à ceci, une table importante dans le vidage est endommagée. Une analyse plus approfondie de l'image est possible.
Impossible de lire DosHeader à 0583002a - état 00000000
Impossible de lire DosHeader à 0587002a - état 00000000
Impossible de lire DosHeader à 0588002a - état 00000000
Impossible de lire DosHeader à 058a002a - état 00000000
Impossible de lire DosHeader à 058c002a - état 00000000

Une fonction de unassembling

Les fichiers de symboles activent le débogueur de noyau référencer des fonctions et variables globales par nom. Spot vérifie quelques fonctions unassembled pour vous assurer que leur aspect appropriés. De nombreuses fonctions sont compilateur optimisé et ne sont pas nécessairement conformes aux exemples ci-dessous. Compilateur optimisé fonctions sont identifiées par FPO entre parenthèses dans le nom de la fonction.

Fonctions commencent normalement par soit «ebp push» ou «mov eax, fs [000000000].» Connaissances de base en matière de langage machine et expérience permettra à reconnaître ces fonctions.
  • Liste des modules chargés
    x * !
  • Liste des symboles d'un module particulier (par exemple, Ntoskrnl.exe).
    x nt! *
  • Sélectionnez une fonction à unassemble c'est-à-dire du compilateur optimisé.
    u NT! _NtUnlockFile

Symboles bonnes

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 de la fonction doit ressembler à du texte ci-dessus ; toutefois, l'unassembly est sujet à modification. Si l'unassembly semble correcte, vous pouvez supposer que les symboles ont correctement chargés pour ce module.

L'unassembly suivant commence par «jnz NT! _NTUnlockFile + 0 x 22. " Évidemment, le début d'une fonction ne démarrait pas avec un code d'instruction de saut. Vérifiez encore une fois l'arborescence de symboles.

Symboles incorrects

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]
				

Symboles du Service Pack

Il est parfois difficile de faire correspondre les symboles avec une installation particulière. À un moment donné dans le temps, un service pourrait ont été ajouté nécessitant la copie des fichiers à partir du CD-ROM d'installation de Windows, lequel copié les fichiers qui ont été mis à jour avec un service pack. Veillez à réappliquer le service pack et tous les disques prise en charge des fournisseurs tiers après avoir modifié la configuration du système, qui copie les fichiers à partir du CD-ROM d'installation de Windows. Les symboles doivent être appliqués dans le même ordre que l'installation.

DES INFORMATIONS SUPPLÉMENTAIRES

Pour rechercher la série du noyau Debug How To des articles, recherchez le mot-clé : debugref.

WinDBG 2.0.x techniques de symbole

Dans le débogueur version 2.0.x et supérieure de la débogueurs Microsoft sont les étapes de vérification de symboles supplémentaires qui peuvent être utilisés. Pour plus d'informations, reportez-vous au site Web Microsoft suivant :
Drivers Development Kit

Propriétés

Numéro d'article: 148660 - Dernière mise à jour: mercredi 4 mars 2009 - Version: 5.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professionnel
  • 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 x64 Edition
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise x64 Edition
  • Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 R2 Standard x64 Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • 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 (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • 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 Édition familiale
  • Microsoft Windows XP Home Edition N
  • Microsoft Windows XP Professional
  • 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 Entreprise 64 bits
  • Windows Vista Édition Familiale Basique 64 bits
  • Windows Vista Édition Familiale Premium 64 bits
  • Windows Vista Édition Intégrale 64 bits
  • Windows 7 Beta
  • Windows Vista Professionnel
  • Windows Vista Professionnel 64 bits
  • Windows Vista Professionnel N
  • Windows Vista Professionnel N 64-bit Edition
  • Windows Vista Entreprise
  • Windows Vista Édition Familiale Basique
  • Windows Vista Édition Familiale Basique N
  • Windows Vista Édition Familiale Basique N 64-bit Edition
  • Windows Vista Édition Familiale Premium
  • Windows Vista Édition Intégrale
Mots-clés : 
kbmt kbinfo KB148660 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: 148660
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