Cómo comprobar los símbolos de depuración de Windows

Seleccione idioma Seleccione idioma
Id. de artículo: 148660 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Los símbolos de depuración de Windows deben comprobarse después de iniciar el depurador del núcleo (I386kd.exe | WinDbg.exe). El depurador puede cargar y mostrar un símbolo del sistema, pero si los símbolos son incorrectos, comandos de depuración futuros no hacer referencia adecuadas funciones y variables, lo que conduce a resultados esporádicos. Enumerados son unos indicadores de rojo y un par de métodos de verificación mancha validez de los símbolos.

Más información

En este artículo se supone que se está ejecutando el depurador del núcleo y ha cargado un archivo Memory.dmp o está conectado a un equipo remoto. Comandos presentados no son totalmente documentados y se muestran sólo los extractos de los resultados.

Contenido del artículo

  • Carga al depurador del núcleo
  • Comprobar la hora de creación con! controladores
  • Uso de LINK.exe para comprobar la hora de creación
  • Unassembling una función
  • Símbolos del Service Pack

Carga al depurador del núcleo

Una carga normal del depurador de núcleo muestra uno de los siguientes mensajes:
KD > sistema monoprocesador

0: kd > sistema multiprocesador
El mensaje que se muestra a continuación indica que el archivo de símbolo para el archivo Ntoskrnl.exe es incorrecto. Compruebe que el núcleo de multiprocesador o monoprocesador apropiado y HAL se copian en el árbol de símbolos.

Ejemplo:
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>
				
cuando el depurador de núcleo carga el archivo Memory.dmp, el núcleo de versión, así como el número de procesador se muestra en las primeras líneas. Confirme que el recuento de procesador se corresponde con el núcleo adecuado y HAL. Información de símbolo de controlador se muestra como cualquiera de los símbolos se carga o aplazados.

Carga de ejemplo:
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>
				
tenga en cuenta que el depurador del núcleo era "No se puede leer el encabezado de la imagen para Floppy.sys en fc820000 - estado c0000001". Este mensaje es normal porque el encabezado de controlador en particular no está actualmente en memoria.

Comprobar la hora de creación con! controladores

Utilice el ! controladores comando para enumerar los controladores actualmente cargado en memoria. Asegúrese de nota de las fechas y horas de los controladores y si o no pudo cargar. (Las columnas de tamaño de código y tamaño de datos en el ejemplo siguiente se quitan para ajustarse al ancho del artículo).
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>
				
tenga en cuenta la hora de creación del archivo, que es la fecha se compila el archivo. Esta fecha es parecido al sello Date\Time en el archivo real al ver la subcarpeta Winnt\System32\Drivers mediante el Administrador de archivos.

Si suscribirse a Microsoft Developers Network (MSDN) o si tiene Windows dispositivo controlador Kit (DDK), el Link.exe herramienta puede utilizarse para confirmar que el archivo es el mismo archivo que creó cuando se compiló el controlador de adjuntar. La "marca de fecha de hora" en el ejemplo siguiente, coincide con "Crear hora" de Netbios.sys en el resultado anterior.

Utilice Link.exe para comprobar la "marca de fecha de tiempo" del archivo adjuntar:
LINK - dump - encabezados \symbols\sys\netbios.dbg
Microsoft (R) COFF Binary archivo Volcador versión 3.00.5270
(C) Microsoft Corp 1992-1995. Todos los derechos reservados.

Volcado del archivo Netbios.dbg
firma 4944
indicadores 0
Equipo de C 14 (i386)
306 características
Fecha marca de hora 2FAAE94F viernes 05 de mayo 23: 13: 19 1995
8D0B suma de comprobación de imagen

10000 base de imagen

70A0 tamaño de imagen
** Contenido eliminado **

Si el ! controladores comando produce las líneas que el siguiente aspecto, una tabla importante en el volcado está dañada. Análisis adicional del volcado no es posible.
No se puede leer DosHeader en 0583002a - estado 00000000
No se puede leer DosHeader en 0587002a - estado 00000000
No se puede leer DosHeader en 0588002a - estado 00000000
No se puede leer DosHeader en 058a002a - estado 00000000
No se puede leer DosHeader en 058c002a - estado 00000000

Unassembling una función

Los archivos de símbolos permiten el depurador del núcleo para hacer referencia a funciones y variables globales por nombre. Manchas compruebe un par de funciones unassembled Asegúrese de que parecen adecuados. Muchas funciones son compilador optimizado y no necesariamente se ajustan los ejemplos siguientes. Compilador optimizado funciones se identifican mediante FPO entre paréntesis en el nombre de función.

Las funciones normalmente empiezan con "ebp de inserción" o "mov eax, fs [000000000]." Conocimientos básicos de lenguaje de máquina y experiencia permitirá a reconocer estas funciones.
  • Lista de módulos cargados
    x *!
  • Lista de símbolos para un módulo concreto (por ejemplo, Ntoskrnl.exe).
    x de nt! *
  • Seleccione una función para desensamblar es del compilador optimizado.
    u NT! _NtUnlockFile

Buena símbolos

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 función debe ser similar al texto anterior; sin embargo, el unassembly sujeta a cambios. Si el unassembly parece correcta, puede suponer que los símbolos se han cargado correctamente para este módulo.

El siguiente unassembly comienza con "jnz NT! _NTUnlockFile + 0 x 22." Obviamente, el principio de una función no comenzaría con un código de instrucción de salto. Compruebe el árbol de símbolo nuevo.

Símbolos incorrectos

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]
				

Símbolos del Service Pack

Hay veces cuando resulta difícil coinciden con los símbolos con una instalación determinada. En algún momento, un servicio podría haberse agregado que necesita copiar archivos desde compacto de instalación de Windows, copiará los archivos que se actualizaron con un service pack. Asegúrese de volver a aplicar el service pack y los discos de soporte técnico de otros fabricantes después de cambiar la configuración del sistema, que copia archivos desde el CD de instalación de Windows. Los símbolos se deben aplicar en el mismo orden que la instalación.

OBTENER INFORMACIÓN ADICIONAL

Para encontrar la serie kernel depurar cómo de los artículos, busque en la palabra clave: debugref.

WinDbg 2.0.x técnicas de símbolo

En 2.0.x de versión del depurador y mayor de los depuradores de Microsoft son pasos de comprobación de símbolos adicionales que pueden utilizarse. Para obtener más información, consulte el sitio Web de Microsoft siguiente:
Drivers Development Kit

Propiedades

Id. de artículo: 148660 - Última revisión: miércoles, 04 de marzo de 2009 - Versión: 5.0
La información de este artículo se refiere 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
Palabras clave: 
kbmt kbinfo KB148660 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 148660

Enviar comentarios

 

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