ARGENTOP2P

Soporte, Ayuda y Consultas => Tutoriales y Manuales => Mensaje publicado por: piltrafa_veloz en Octubre 22, 2008, 00:42:55

Título: Pantallas Azules: Que indican y como averiguar su causas
Publicado por: piltrafa_veloz en Octubre 22, 2008, 00:42:55
Plantalla azul de la muerte
(http://farm4.static.flickr.com/3178/2961926177_39f3b7ca3c_o.jpg)

■ La popular pantalla azul (Blue Sreen of Death), es una manera del sistema operativo de informar sobre un errorEstos puede ser generados por el núcleo de windows, Kernel en archivos como (win32.sys, esbtor.sys, usbyhci.sys). Los driver presentan generalmente, la extensión VXD y se puede solucionar con una actualización de los mismos.
Si el sistema no responde seguro presionaremos el botón [Reset] Al forzar el reinicio estamos obviando información importante que puede ayudarnos a solucionar el problema de manera definitiva.Veamos como generar un volcado de memoria y como aprovecharlo para descubrir la causa de los errores.


■   Que es un Volcado de memoria
Un volcado de memoria es un archivo de imagen en el que se almacena, bit por bit, el contenido de la memoria RAM en el momento en que Windows deja de responder. Es posible generar tres tipos de volcados de memoria.

■   Volcado pequeño (Mini Dump)
Es un pequeño archivo, de apenas 64 KB en sistemas de 32 bits o 128 KB en sistemas de 64 bits, que no contiene ninguno de los ejecutables que estaban en memoria, sino que tan sólo almacena: el mensaje de error con sus parámetros y datos, una lista de drivers cargados, el contexto en el cual el procesador se detuvo, la información del proceso que se detuvo, la información del subproceso que se detuvo y, finalmente, la pila de llamadas del núcleo al proceso que se detuvo.
■   Volcado del núcleo (Kernel Dump)
Por lo general, su tamaño es igual a la cantidad de memoria utilizada por el núcleo del sistema operativo. Para Windows XP es aproximadamente de unos 100 MB. Éste es probablemente el volcado más útil, ya que muestra el estado del kernel y los archivos de sistema en el momento del error.
■   Volcado completo (Full Dump)
En este caso, el tamaño del archivo de imagen será igual a la cantidad de memoria RAM instalada. Esto se debe a que en este caso se copian todos los datos contenidos en memoria, tanto del núcleo como de las aplicaciones en ejecución.




Cómo generar un volcado de memoria

El volcado de memoria se genera de manera automática, pero es necesario que nosotros le indiquemos a Windows que es nuestra intención obtener este archivo y la ubicación donde se guardará.
Para esto, hacemos clic con el botón derecho del mouse sobre el icono de Mi PC y elegimos la opción [Propiedades]. En el cuadro que se abre nos dirigimos a la pestaña [Opciones avanzadas] y hacemos clic en el botón [Configuración] del área Inicio y recuperación.
Dicho fichero se va a guardar en la carpeta "windows" con el nombre MEMORY.dmp.




(http://farm4.static.flickr.com/3249/2952613745_6015f86b57_o.jpg)

(http://farm4.static.flickr.com/3150/2953325060_eede9e878b.jpg?v=0)




1.Tenemos un breve texto descriptivo como así también a veces el  Nº de error en forma hexadecimal.
2. Acción recomendada: Sugerencia de posible hardware  o el software a analizar.
3. Información de Archivo:Aquí se detalla el nombre de la aplicación o el archivo que origino el error.
4.Destino de depuración el tipo de volcado y la ubicación si el volcado se realiza en otra computadora.

(http://farm4.static.flickr.com/3288/2962453215_3809b46b4f.jpg?v=0)




Herramientas de análisis [aplicación de debugging]

Es un programa que, junto con un poco de paciencia nos permite analizar los ficheros DUMP de windows para poder encontrar el error con exactitud cuando aparece una pantalla azul.
Funciona desde windows 2000 hasta windows server 2008. Y obviamente en XP y Vista.
El volcado de memoria que Windows realiza en el momento en que la computadora deja de funcionar está compilado, es decir, se encuentra en un código de bajo nivel sólo comprensible para el procesador. Para poder entender el error y sus causas, deberemos descompilar el volcado de memoria, algo así como traducirlo a un lenguaje humanamente comprensible.
Para poder hacer esto necesitaremos de la herramienta conocida como "Windows Debugger", que podemos descargar de www.microsoft.com/whdc/devtools/debugging/installx86.mspx. Pero esta herramienta necesita, además, una tabla de símbolos, una especie de "diccionario" que permita la traducción. Si no contamos con una conexión permanente a Internet, podemos descargar las tablas de símbolos completas desde www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx , aunque cada paquete puede llegar a pesar 209 MB. Si, por el contrario, disponemos de una conexión permanente, lo conveniente es crear una carpeta para las tablas de símbolos, supongamos C:\Symbols, e instalar la aplicación de debugging. Luego, ya dentro de la aplicación, vamos al menú [File/Symbol file path] y escribimos lo siguiente: SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols
De este modo el programa actualizará las tablas de símbolos instaladas automáticamente según sea necesario.
En este caso la carpeta donde se van a guardar los símbolos es c:\Websymbols, pero se puede cambiar por cualquier otra... vale aclarar que necesitamos estar conectados a Internet.





(http://farm4.static.flickr.com/3208/2953325378_80b3dc5195.jpg?v=0)

(http://farm3.static.flickr.com/2142/2952475059_78bbb6dfae_o.jpg)




■  Estudiar el volcado de memoria

Con todo listo y configurado, abrimos una vez más Windows debugger (Windbg) y presionamos la   combinación de teclas <Ctrl+D> o hacemos clic en  el  menú  [File/Open Crash Dump...]. Buscamos el archivo de volcado de memoria generado la última vez que la PC se congeló y lo car¬gamos en el programa. Es importante observar la cabecera del archivo; si se nos indica que está corrupto, entonces   no podremos   continuar y deberemos   esperar   el próximo error para generar un nuevo volcado de memoria.
En caso contrario, tendremos una ventana con los resultados de la recopilación y una línea de comandos, donde deberemos escribir la palabra ¡Analyze -v y presionar <Enter> para obtener resultados. Este comando genera un completo informe del error  donde,   observando   con atención, podremos determinar qué causó el cuelgue y su solución.




■ Ahora vamos a abrir el fichero dump que nos genero la maldita pantalla azul. Para esto vamos a "File"-"open crash dump" y abrimos el archivo MEMORY.dmp mencionado anteriormente.(Este archivo puede leerse desde cualquier PC)


El informe se divide en varios puntos o secciones. Los más importantes son los siguientes:

Descripción del error: esta sección se presenta al principio del informe. Son palabras en inglés, en mayúsculas y separadas por un guión bajo. Describen el error en líneas generales, algo así como UNABLE TOJ.OCATE DLL. Con introducir estas palabras en un buscador tendremos mayor detalle y la manera de solucionarlo.
Arguments (Argumentos): son cuatro valores en hexadecimal que indican algunas características del error:
Arg1 es la dirección de memoria a la que se hace referencia o el código del error:
Arg2 es la dirección de memoria donde ocurrió el error:
Arg3 indica si lo que se intentó ejecutar en el momento del error fue un proceso de lectura (0x00000000) o de escritura (0x00000001); y
Arg4 es la dirección de memoria desde donde se intentó ejecutar el proceso que generó el error.
DEFAULT BUCKET ID: es la categoría a la que pertenece la falla.
IMAGE NAME: éste es el nombre del driver o el ejecutable que tenía el control en el momento de producirse el error. En este punto deberemos prestar especial atención, ya que aquí puede estar la solución de nuestros problemas.
STACK TEXT: es concretamente el contenido de la memoria en el momento de la falla. Es útil para realizar un seguimiento de lo que ocurrió antes del error.




Ahora vamos a poner un ejemplo

La pantalla azul decía únicamente MULTIPLE_IRP_COMPLETE_REQUESTS y nada mas que esto. Nosotros en un caso así enseguida estaríamos formateando la PC, pero veamos como sigue:

Al abrirlo con el "windbg" aparece esto (para cualquier archivo el formato es similar):
_____________________________________________________________________
Microsoft (R) Windows Debugger Versión 6.4.0007.2
Copyright (c) Microsoft Corporation. All rights reserved.

Loading Dump File [\\ka000SRV\d$\WINDOWS\MEMORY.DMP]
Kernel Summary Dump File: Only kernel address space is available

Symbol search path is: SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows Server 2003 Kernel Versión 3790 (Service Pack 1) MP (4 procs) Free x86 compatible
Product: LanManNt, suite: TerminalServer SingleUserTS
Built by: 3790.srv03_sp1_rtm.050324-1447
Kernel base = 0x80800000 PsLoadedModuleList = 0x808af988
Debug session time: Thu May 19 19:32:53.800 2005 (GMT+2)
System Uptime: 0 days 0:05:14.483
Loading Kernel Symbols
.....................................................................
Loading unloaded module list
.
Loading User Symbols
PEB is paged out (Peb.Ldr = 7ffd800c). Type ".hh dbgerr001" for details
*********************************************************************
* *
* Bugcheck Analysis *
* *
*********************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 44, {87e5a490, d75, 0, 0}


*** ERROR: Module load completed but symbols could not be loaded for Fasttrak.sys
*** ERROR: Module load completed but symbols could not be loaded for VMNetSrv.sys
*** ERROR: Module load completed but symbols could not be loaded for TSKNF601.SYS
*** ERROR: Module load completed but symbols could not be loaded for ctprxy2k.sys
*** ERROR: Module load completed but symbols could not be loaded for PSXDRV.SYS
*** ERROR: Module load completed but symbols could not be loaded for memalloc.sys

*********************************************************************
Probably caused by : usbehci.sys

_________________________________________________________________

Bien: ya aparece un culpable!! el archivo Usbehci.sys,(un driver USB del propio windows), pero como somos muy curiosos vamos a pedir mas detalles...Para esto usamos el comando: !analyze -v

Y para este ejemplo nos aparece lo siguiente:
_________________________________________________________________
0: kd> !analyze -v

*******************************************************************************
* Bugcheck Analysis *

*******************************************************************************

MULTIPLE_IRP_COMPLETE_REQUESTS (44)
A driver has requested that an IRP be completed (IoCompleteRequest()), but
the packet has already been completed. This is a tough bug to find because
the easiest case, a driver actually attempted to complete its own packet
twice, is generally not what happened. Rather, two separate drivers each
believe that they own the packet, and each attempts to complete it. The
first actually works, and the second fails. Tracking down which drivers
in the system actually did this is difficult, generally because the trails
of the first driver have been covered by the second. However, the driver
stack for the current request can be found by examining the DeviceObject
fields in each of the stack locations.
Arguments:
Arg1: 87e5a490, Address of the IRP
Arg2: 00000d75
Arg3: 00000000
Arg4: 00000000

Debugging Details:
------------------

IRP_ADDRESS: 87e5a490

default_bucket_id: driver_default

image_name: usbehci.sys

debug_flr_image_Timestamp: 42435bb3

module_name: usbehci

faultig_name: ba27b000 usbehci

last_control_tranfer: from 808596ec to 8087b6be

stack_ext:

f789ee10 808596ec 00000044 87e5a490 00000d75 nt!KeBugCheckEx+0x1b
f789ee48 ba11ddc4 87e5a490 88770eb0 8a0e1028 nt!IopfCompleteRequest+0x2f7
f789eeb0 ba11ea45 b70989c0 00000000 8083b28b USBPORT!USBPORT_CompleteTransfer+0x38c
f789eee0 ba11f558 026e6f44 8a0e10e0 8a0e10e0 USBPORT!USBPORT_DoneTransfer+0x137
f789ef18 ba120d58 8a0e1028 8083b28b 8a0e1230 USBPORT!USBPORT_FlushDoneTransferList+0x168
f789ef44 ba12eef2 8a0e1028 8083b28b 8a0e1028 USBPORT!USBPORT_DpcWorker+0x224
f789ef80 ba12f06a 8a0e1028 00000001 ffdffa40 USBPORT!USBPORT_IsrDpcWorker+0x380
f789ef9c 8083eb0f 8a0e164c 6b755044 00000000 USBPORT!USBPORT_IsrDpc+0x166
f789eff4 8083a92b b76d5d44 00000000 00000000 nt!KiRetireDpcList+0xca


failure_bucket_id: 0x44_IMAGE_usbehci.sys_date_3_25_2005

bucke_id: 0x44_IMAGE_usbehci.sys_date_3_25_2005

_____________________________________________________________

Si sabemos un poco de ingles vemos que nos dice, muy resumidamente, que puede haber dos drivers diferentes, y que cada uno trata de recibir el paquete de datos completamente, lo que produce un error.
Si nos fijamos en la parte donde dice "Arguments" vemos lo siguiente:


Arguments:
Arg1: 87e5a490, Address of the IRP
Arg2: 00000d75
Arg3: 00000000
Arg4: 00000000

¿Y que hacemos con esto?
Lo que hacemos es, usando el comando !IRP , + el 87e5a490 del argumento, y le  pedimos al programa que nos diga lo que hay en esa dirección, entonces:

_________________________________________________________________

0: kd> !IRP 87e5a490

Irp is active with 3 stacks 3 is current (= 0x87e5a548)
No Mdl Thread 00000000: Irp stack trace.
cmd flg cl Device File Completion-Context
[ 0, 0] 0 0 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 00000000
[ 0, 0] 0 0 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 00000000
>[ f, 0] 0 c0 8a055618 00000000 b69de300-00000000 Success Error
\Driver\usbehci ax88172
Args: b70989c0 00000000 00220003 00000000
_________________________________________________________________

■ La linea resaltada en negrita nos dice que estos son los drivers que han querido recibir el paquete pensando que era suyo.

El primero corresponde al stack USB de Windows... y el segundo a un "dudoso" y no certificado driver de un dispositivo de red (una NIC LAN 10/100). El aix88712 es el chip que monta y su driver se llama igual.

Con esto ya tenemos el problema resuelto!!! Ese driver tiene que ser eliminado!








Resumen

Como se activa:
Hacemos click derecho en MI PC- propiedades-Opciones avanzadas, donde dice "inicio y recuperación" le damos a "configuración", y donde dice "Escribir información de depuración" elegimos "Volcado de memoria de núcleo"



Como se configura:windbg:
vamos al menú [File/Symbol file path] y escribimos lo siguiente: SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols
SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols

Como abro el archivo de volcado:
hacemos clic en  el  menú  [File/Open Crash Dump...].

Donde se guarda:
Dicho fichero se va a guardar en la carpeta windows con el nombre MEMORY.dmp

Cual es comando para del "windbg":
deberemos escribir la palabra ¡Analyze -v y presionar <Enter> para obtener resultados.
Luego  usando el comando !IRP + el del argumento

Analyze -v

!IRP




De donde se descarga:

■Tamaño: 17.1 MB
■Idioma Ingles
Release version 6.9.3.113 - April 29,2008

Debugging Tools for Windows (windbg)

:arrow: :arrow: :arrow:    (http://img151.imageshack.us/img151/9783/pfms4.gif) (http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.9.3.113.msi)


descarga del Windows debugger  desde   Microsoft (http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx)


descarga Symbol Packages windbg -  202 MB  Symbol Packages (http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx)







saludos  ;)


Título: Re: (COM) "Pantallas Azules: Que indican y como averiguar su causas"
Publicado por: hardrocker en Octubre 22, 2008, 06:05:03
Buenísimo.
Agrego una página para ver pantallas azules y sus significados:
http://aumha.org/win5/kbestop.htm
Título: Re: Pantallas Azules: Que indican y como averiguar su causas
Publicado por: Camello_AR en Octubre 25, 2008, 01:30:37
Gracias piltrafa, espero que esto sea util para todos los usuarios que a diario consultan por BSOD.

Igual les recuerdo a todos que no pongan el reinicio automático
Título: Re: Pantallas Azules: Que indican y como averiguar su causas
Publicado por: fns en Octubre 25, 2008, 02:36:22
Me acuerdo que en una época tenía configurado para que haga un volcado completo. Pero cuando aparecía esta famosa pantalla (me aparecía por una especie de incompatibilidad entre el driver de sonido y un juego en wXP), y sólo si dejaba que termine de hacer el volcado, me cagaba la partición, con lo cual tenía que poner el disco de arranque, darle a fixboot, etc. Y es al día de hoy que no sé por que se comportaba así.
Título: Re: Pantallas Azules: Que indican y como averiguar su causas
Publicado por: piltrafa_veloz en Octubre 25, 2008, 20:34:06
Cita de: Camello_AR en Octubre 25, 2008, 01:30:37
Igual les recuerdo a todos que no pongan el reinicio automático

esto se activa y desactiva desde la misma pantalla para configurar el volcado de "memoria de nucleo".

pero que se puede hacer cuando la computadora se congela? Lo ideal es forzarla generar un error para obtener el volcado de memoria . Para eso abrimos el Editor de  Registro  [Inicio/Ejecutar/Regedit] y navegamos por el árbol de claves del panel de la derecha hasta situarnos en
MI PC\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters allí, hacemos clic con el botón derecho  del mouse (sobre el lado derecho de la pantalla) y creamos un "nuevo valor" DWORD con el nombre CrashOnCtrlScroll, y establecemos su contenido en 1 .
Reiniciamos el equipo, y la próxima vez que nuestra PC se congele bastara con presionar 2 veces la combinación [ Ctrol + Bloq Despl] para que aparezca nuestra amada pantalla azul y se genere el volcado de memoria correspondiente.

Veamos como hacerlo:   [Inicio/Ejecutar/Regedit] vamos hasta:
MI PC\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

1. "nuevo valor" DWORD]
(http://farm4.static.flickr.com/3242/2972849714_a0a3effca6.jpg?v=0)

2. modificar nombre:Crash0nCtrlScroll

(http://farm4.static.flickr.com/3274/2972849792_8f6729602f.jpg?v=0)

CrashOnCtrlScroll
(http://farm4.static.flickr.com/3141/2972002567_93e2d9696e.jpg?v=0)

(http://farm4.static.flickr.com/3042/2972849924_bf488da716.jpg?v=0)

3. Editar valor"- "DWORD" - "1"  - Aceptar.
(http://farm4.static.flickr.com/3169/2972002687_b1c32c7993.jpg?v=0)




*[/b] presionar 2  veces la combinación [ Ctrol + Bloq Despl] para el volcado de memoria.









Título: Re: Pantallas Azules: Que indican y como averiguar su causas
Publicado por: nlucast en Octubre 25, 2008, 21:26:41
muy bueno, me sirve, porque cada vez que me tira la pantalla esta azul formateo de una :P


saludos!