Verifica dei simboli di debug di Windows

Traduzione articoli Traduzione articoli
Identificativo articolo: 148660 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Dopo aver avviato il debugger del kernel Ŕ necessario verificare i simboli di debug di Windows (I386kd.exe | WinDbg.exe). Il debugger pu˛ caricare e presentare una richiesta, ma se i simboli non sono corrette, comandi di debug futuri non fanno riferimento corrette funzioni e variabili, che produce risultati sporadico. Sono elencati di seguito alcuni flag di rosso e un paio di metodi per la validitÓ del controllo campione dei simboli.

Informazioni

In questo articolo si presuppone che il debugger del kernel Ŕ in esecuzione e caricato un file Memory.dmp o Ŕ connesso a un computer remoto. I comandi presentati non sono documentati completamente e vengono visualizzati solo estratti dall'output.

Contenuto dell'articolo

  • Caricare il debugger del kernel
  • Controllo ora di creazione con! driver
  • Utilizzo di Link.exe per controllo ora creazione
  • Unassembling una funzione
  • Simboli di Service Pack

Caricare il debugger del kernel

Un carico normale del debugger del kernel visualizzato uno dei seguenti messaggi:
kd > sistema uniprocessore

0: kd > sistema multiprocessore
Il messaggio riportato di seguito indica che il file di simboli per il file Ntoskrnl.exe Ŕ errato. Verificare di assicurarsi che l'HAL and appropriati del kernel multiprocessore o uniprocessore vengono copiati nella struttura di simbolo.

Esempio:
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 il debugger del kernel carica il file di Memory.dmp, il kernel di versione come e quando il numero del processore viene visualizzato nelle prime righe. Verificare che il numero di processori corrisponde con appropriati del kernel e HAL. Informazioni sui simboli di driver viene visualizzati come entrambi i simboli sono caricati o posticipati.

Carico di esempio:
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>
				
nota che il debugger del kernel Ŕ stato "Impossibile leggere intestazione dell'immagine per Floppy.sys in fc820000 - stato c0000001". Questo messaggio Ŕ normale perchÚ l'intestazione particolare driver non Ŕ attualmente in memoria.

Controllo ora di creazione con! driver

Utilizzare il ! driver comando per elencare i driver attualmente caricato in memoria. Assicurarsi di annotare le date e ore dei driver e indipendentemente dal fatto pu˛ essere caricati. (Le colonne di dimensioni del codice e dimensioni di dati nell'esempio seguente vengono rimosse alla larghezza dell'articolo).
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 l'ora di creazione del file, ovvero la data, il file viene compilato. Questa data Ŕ vicino al timbro Date\Time sul file effettivo visualizzando la sottocartella Winnt\System32\Drivers utilizzando file Manager.

Se si sottoscrizione a Microsoft Developers Network (MSDN) o Windows Device Driver Kit (DDK), il Link.exe strumento pu˛ essere utilizzato per verificare che il file stesso creato Ŕ Dbg quando il driver Ŕ stato compilato. "Data timestamp" nell'esempio riportato di seguito corrisponde a "Crea momento" del NetBIOS.sys nell'output riportato sopra.

Utilizzare Link.exe per verificare il "Data timestamp" del file Dbg:
LINK - dump - intestazioni \symbols\sys\netbios.dbg
Microsoft (R) COFF Binary File Dumper versione 3.00.5270
Copyright (C) Microsoft Corp 1992-1995. Tutti i diritti riservati.

Dump del file Netbios.dbg
firma 4944
flag 0
Computer C 14 (i386)
306 caratteristiche
2FAAE94F ora data venerdý maggio 05 13: 23: 19 1995
8D0B checksum dell'immagine

10000 base dell'immagine

70A0 dimensioni dell'immagine
** Contenuto eliminato **

Se il ! driver comando genera tutte le righe che simile al seguente, una tabella nel dump della importante Ŕ danneggiata. Un'ulteriore analisi del dump potrebbe non essere possibile.
Impossibile leggere DosHeader in 0583002a - stato 00000000
Impossibile leggere DosHeader in 0587002a - stato 00000000
Impossibile leggere DosHeader in 0588002a - stato 00000000
Impossibile leggere DosHeader in 058a002a - stato 00000000
Impossibile leggere DosHeader in 058c002a - stato 00000000

Unassembling una funzione

I file dei simboli attivare il debugger del kernel fare riferimento funzioni e variabili globali per nome. Campione verificare un paio di funzioni unassembled per assicurarsi che sembrano corrette. Molte funzioni sono compilatore ottimizzato e non necessariamente sono conformi agli esempi riportati di seguito. Compilatore ottimizzato funzioni vengono identificate in base la FPO tra parentesi nel nome della funzione.

Funzioni Ŕ in genere iniziano con un "push ebp" o "mov eax, fs [000000000]". Conoscenza di base di linguaggio macchina e di esperienza consentirÓ di uno a riconoscere queste funzioni.
  • Elenco moduli caricati
    x *!
  • Simboli di elenco per un modulo particolare (ad esempio, Ntoskrnl.exe).
    x nt! *
  • Selezionare una funzione per ovvero unassemble del compilatore ottimizzato.
    u NT! _NtUnlockFile

Buona simboli

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>
				
Il unassembly della funzione sarÓ simile al testo precedente; tuttavia, di Ŕ del unassembly soggette a modifiche. Se il unassembly sembra corretto, si pu˛ presumere che i simboli sono caricati correttamente per questo modulo.

Il seguente unassembly inizia con "jnz NT! _NTUnlockFile + 0 x 22." Ovviamente, all'inizio di una funzione non iniziare con un codice di istruzione di spostamento. Verificare nuovamente la struttura del simbolo.

Simboli non validi

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]
				

Simboli di Service Pack

Esistono volte Ŕ difficile associare i simboli con un'installazione particolare. In un momento, un servizio potrebbe sono state aggiunte che richiede la copia dei file dal CD di installazione di Windows, copiati file che sono stati aggiornati in un service pack. Assicurarsi di riapplicare il service pack e i dischi di terze parti supporto dopo aver modificato l'installazione del sistema, che copia i file dal CD di installazione di Windows. I simboli dovranno essere applicati nello stesso ordine dell'installazione di.

ULTERIORI INFORMAZIONI

Per individuare la serie kernel Debug How To degli articoli, cercare la parola chiave: debugref.

WinDbg 2.0. x simbolo tecniche

Nella finestra di debugger versione 2.0. x e maggiore tra il debugger di Microsoft sono aggiuntivi per simboli necessari passaggi di verifica che possono essere utilizzati. Per ulteriori informazioni, vedere il seguente sito Web Microsoft:
Drivers Development Kit

ProprietÓ

Identificativo articolo: 148660 - Ultima modifica: mercoledý 4 marzo 2009 - Revisione: 5.0
Le informazioni in questo articolo si applicano 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 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
Chiavi:á
kbmt kbinfo KB148660 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 148660
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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