Nosotros los que trabajamos en informática a veces nos encontramos con las BSOD (Blue Screen of Death) el nombre lo dice todo, no es agradable encontrarse con eso y normalmente para el usuario no experimentado -y a veces para los muy experimentados – es díficil deshacerse de ellas.
Normalmente suele ocurrir después de instalar un dispositivo nuevo con unos drivers mal desarrollados, o programas pobremente depurados.
Para usuarios caseros, o aún en servidores «normales» es fácil saber de donde viene, si se recuerda el nuevo dispositivo que se instaló o si ésta aparece justo después de corerr un programa. Pero que ocurre cuando empezamos a obtener estas pantallas en un ambiente multiusuario?
Pues hace poco me pasó, en un servidor Windows 2008 R2 con el rol RDP instalado. Y vaya lío..
Yo estaba de vacaciones, y me enviaron un correo solicitando ayuda, lo único que se me vino a la mente fué que hacía poco yo había agregado unos gigas de RAM en el servidor y tuve algunos errores de paridad que se arreglaron limpiando las barras de memoria y cambiándolas de slots (sin embargo lo tenía presente por si algo ocurría).
Durante mis vacaciones, el buen soporte de IBM al no encontrar una razón válida cambió Motherbard, Memoria, Procesador y nada arregló el problema. Finalmente uno de los usuarios confeso que otro proveedor había hecho una actualización de software sin consultarnos.
Después de dos semanas, un poco por descarte, y mucho debido a la confesión del usuario, mis colegas estaban sospechando de aquella actualización.
El proveedor «hizo» los cambios necesarios, y nosotros solicitamos que hicieran las pruebas correspondientes y al parecer todo había mejorado.
Pero el lunes pasado, el servidor nuevamente se reinició con una pantalla azul (así creo que la llamamos en español). El proveedor decía que los cambios ya fueron hechos y que su programa ya no era el culpable, así que me puse en la tarea.
Primer paso: Descargar las herramientas de depuración de Windows (Debbuging tools for Windows) desde el sitio oficial de Microsoft –aquí – buscar la version que corresponda e instalarlas.
Segundo paso: buscar y descargar los símbolos específicos para el sistema operativo, que se pueden encontrar aquí, e instalarlas (esto se puede hacer automáticamente, pero esto lo veremos más adelante)
Tercer paso: Cargar el archivo de vaciado de memoria (más conocido como memory dump)
Cuarto paso: El análisis. que es el más complicado, si los símbolos corresponden, será algo más sencillo.
Sin embargo, a mi me gusta hacer las cosas mucho más sencillas todavía. Después de moverme un poco encontre un programa que se llama debugwiz, se puede descargar aquí (a propósito, buen foro, recomendado), lo bueno de este programa, es que se encarga del segundo paso en adelante…
Por ejemplo, el mismo programa se encarga de descargar los símbolos adecuados desde el sitio de Microsoft con el comando «SRV*c:\symbols*http://msdl.microsoft.com/download/symbols»
Para configurarlo hay que asegurarse de seleccionar la opción avanzada y especificar la ruta del executable cdb.exe (que pertenece a las herramientas de depuración de Windows), en mi caso, en éste computador -diferente al servidor que tenía el problema- apunta a: «C:\Program Files\Debugging Tools for Windows (x86)\cdb.exe»
El archivo genera un archivo en la raíz del C:\ llamado Debuglog.txt que nos dirá quién es el verdadero culpable en una línea como ésta:
PROCESS_NAME: Programadelam.exe
Adicional dentro del mismo archivo se pueden encontrar muchas más cosas como:
Microsoft (R) Windows Debugger Version 6.12.0002.633 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\Windows\Minidump51412-37923-01.dmp]
Mini Kernel Dump File: Only registers and stack trace are available
Symbol search path is: SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is: C:\Windows;C:\Windows\system32;C:\Windows\system32\drivers
Windows 7 Kernel Version 7601 (Service Pack 1) MP (4 procs) Free x64
Product: LanManNt, suite: Enterprise TerminalServer
Built by: 7601.17803.amd64fre.win7sp1_gdr.120330-1504
Machine Name:
Kernel base = 0xfffff800`01a51000 PsLoadedModuleList = 0xfffff800`01c95670
Debug session time: Mon May 14 11:21:02.560 2012 (UTC – 4:00)
System Uptime: 0 days 17:40:25.043
Una simple pantalla que puede ayudar a resolver muchos problemas 😉
Buen pulso..!!!