Überprüfen der Windows-Debugsymbole

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 148660 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Die Debugsymbole für Windows müssen überprüft werden, nach dem Starten des Kernel-Debugger (I386KD.exe | WinDbg.exe). Der Debugger möglicherweise laden und stellen Sie eine Eingabeaufforderung, aber wenn die Symbole nicht korrekt sind, zukünftige Debuggen Befehle nicht auf verweisen erforderlichen Funktionen und Variablen, was zu sporadischen Ergebnissen führt. Unten sind ein paar rotes Kennzeichen und eine Reihe von Methoden zum Spotfarben Kontrollkästchen Gültigkeit der Symbole.

Weitere Informationen

Dieser Artikel setzt voraus, dass der Kernel-Debugger oder ausgeführt wird und eine Memory.dmp-Datei geladen wurde mit einem Remotecomputer verbunden ist. Dargestellten Befehle sind nicht vollständig dokumentiert und nur Auszüge aus der Ausgabe angezeigt.

Artikel auflisten

  • Laden den Kernel-Debugger
  • Überprüfen der Erstellungszeit mit! Treiber
  • Mithilfe von Link.exe erstellt überprüfen
  • Eine Funktion unassembling
  • Service Pack-Symbole

Laden den Kernel-Debugger

Ein normaler Belastung der Kernel-Debugger zeigt eine von den folgenden Eingabeaufforderungen angeben:
KD > Uniprozessor-System

0: kd > Multiprozessor System
Die unten angezeigte Eingabeaufforderung gibt an, dass die Symboldatei für die Datei "Ntoskrnl.exe" falsch ist. Stellen Sie sicher, dass die entsprechende Multiprozessor oder -Uniprozessor-Kernel und die HAL in der Symbolstruktur kopiert werden.

Beispiel:
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>
				
bei der Kernel-Debugger lädt die Datei Memory.dmp, den Kernel-Version sowie die Anzahl der Prozessor wird in die ersten Zeilen angezeigt. Stellen Sie sicher, dass die Anzahl der Prozessoren mit den entsprechenden Kernel und HAL entspricht. Entweder die Symbole geladen oder zurückgestellt sind Treiber Symbolinformationen angezeigt.

Load-Beispiel:
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>
				
beachten, dass der Kerneldebugger "Konnte nicht Imageheader für Floppy.sys in fc820000 - Status-c0000001 zu lesen." konnte Diese Meldung ist normal, da der Header bestimmten Treiber nicht im Speicher befindet.

Überprüfen der Erstellungszeit mit! Treiber

Verwenden der ! Treiber Befehl, um die Treiber aktuell Liste in den Speicher geladen. Notieren Sie sich die Datumsangaben und Uhrzeiten der Treiber und unabhängig davon, ob Sie geladen werden konnte. (Die Spalten Code Größe und Größe der Daten im folgenden Beispiel werden entfernt, an die Breite des Artikels an.)
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>
				
Beachten Sie die Erstellungszeit der Datei, die das Datum ist die Datei kompiliert wird. Dieses Datum ist die Date\Time einen für die aktuelle Datei beim Anzeigen der Unterordner "Windows\System32\Drivers" Datei-Manager.

Wenn Sie des Microsoft Developers Network (MSDN abonnieren) oder die Windows Device Driver Kit (DDK), das Tool verwendet werden kann, um bestätigen, dass Link.exe der DBG-Datei dieselbe Datei handelt, die bei der Kompilierung des Treibers erstellt wurde. Der "Datum Zeitstempel" im folgenden Beispiel entspricht der "erstellen Time" von Netbios.sys in der obigen Ausgabe.

Verwenden Sie Link.exe, um den "Datum Zeitstempel" der DBG-Datei zu überprüfen:
LINK - Dump - Header \symbols\sys\netbios.dbg
Microsoft (R) COFF Binary File Dumper Version 3.00.5270
Copyright (C) Microsoft Corp. 1992-1996. Alle Rechte vorbehalten.

Speicherabbild der Datei Netbios.dbg
4944-Signatur
0 flags
14 C Computer (i386)
306 Merkmale
2FAAE94F Datum Zeitstempel Fr Mai 05 23: 13: 19 1995
8D0B-Prüfsumme des Bildes

10000 Basis des Bildes

Größe des Bildes 70A0
** Gelöschte Inhalte **

Wenn die ! Treiber Befehl erzeugt alle Zeilen, die wie folgt aussehen, eine wichtige Tabelle in das Speicherabbild ist beschädigt. Weitere Analysen der Sicherung möglicherweise nicht möglich.
Kann nicht gelesen DosHeader auf 0583002a - Status 00000000
Kann nicht DosHeader auf 0587002a - Status 00000000 gelesen werden
Kann nicht DosHeader auf 0588002a - Status 00000000 gelesen werden
Kann nicht DosHeader auf 058a002a - Status 00000000 gelesen werden
Kann nicht DosHeader auf 058c002a - Status 00000000 gelesen werden

Eine Funktion unassembling

Die Symboldateien aktivieren den Kernel-Debugger Funktionen und globalen Variablen nach Namen verweisen möchten. Spotfarben überprüfen eine Reihe von nicht zusammengebauten Funktionen, um sicherzustellen, dass Sie korrekte aussehen. Viele Funktionen sind Compiler optimiert und in den folgenden Beispielen nicht unbedingt übereinstimmen. Compiler optimiert Funktionen werden durch die FPO in Klammern in den Namen der Funktion identifiziert.

Funktionen beginnen normalerweise mit entweder Ebp"Push" oder "" Mov Eax, fs [000000000]." Grundlegende Kenntnisse der Maschinensprache und Erfahrungen ermöglicht eine dieser Funktionen zu erkennen.
  • Geladene Module auflisten
    X *!
  • Symbole, Liste für ein bestimmtes Modul (z. B. Ntoskrnl.exe).
    x nt! *
  • Wählen Sie eine Funktion, d. h. nicht Compiler optimiert unassemble disassembliert werden.
    u NT! _NtUnlockFile

Gute Symbole

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>
				
Die Unassembly der Funktion sieht ähnlich wie der Text oben, jedoch die Unassembly vorbehalten. Wenn die Unassembly richtigen aussieht, können Sie davon ausgehen, dass die Symbole ordnungsgemäß für dieses Modul geladen haben.

Die folgenden Unassembly beginnt mit "NT Jnz! _NTUnlockFile + 0 x 22." Der Anfang einer Funktion würde natürlich nicht mit einem Sprung Anweisung Code gestartet werden. Überprüfen Sie die Symbolstruktur einmal erneut.

Falsche Symbole

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]
				

Service Pack-Symbole

Es gibt Situationen Wenn es entsprechend der Symbole mit einer bestimmten Installation schwierig ist. Irgendwann in der Zeit konnte ein Dienst hinzugefügt worden sein, Kopieren von Dateien von der Windows-Installations-CD, die über Dateien kopiert, die mit einem Servicepack aktualisiert wurden. Müssen Sie unbedingt erneut anwenden, Servicepack und alle Datenträger Fremdanbieter-Unterstützung nach der Änderung Systeminstallation, die Dateien aus der Windows-Installations-CD kopiert. Die Symbole sollten in derselben Reihenfolge wie die Installation angewendet werden.

WEITERE INFORMATIONEN

Finden die Kernel Debuggen to Reihe von Artikeln, suchen Sie nach dem Schlüsselwort: Debugref.

WinDbg 2.0.x Symbol Verfahren

Im Debugger Version 2.0.x und höher von Microsoft-Debugger sind zusätzliche Symbol Überprüfungsschritte, die verwendet werden können. Weitere Informationen finden Sie auf der folgenden Microsoft-Website:
Drivers Development Kit

Eigenschaften

Artikel-ID: 148660 - Geändert am: Mittwoch, 4. März 2009 - Version: 5.0
Die Informationen in diesem Artikel beziehen sich auf:
  • 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 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 Home Edition
  • 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 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
Keywords: 
kbmt kbinfo KB148660 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 148660
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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