Usando WinDbg con los archivos de volcado (Dump)

Para usar WinDbg en el análisis de archivos de volcado debemos instalar las herramientas de depuración.


Para reunir la mayor cantidad de información de un archivo de volcado hemos de proporcionar al depurador acceso a los archivos de símbolos. Estos archivos hacen que el depurador nos traduzca a un lenguaje más entendible por los humanos, tanto los módulos como los nombres de funciones. El camino más simple de dar acceso a los símbolos al depurador es configurarlo para que acceda al servidor de símbolos de Microsoft mediante una conexión a internet. Para ello:



  1. Pulsamos en el botón Inicio, todos los programas, Debugging Tools for Windows, luego pulsamos en WinDbg.

  2. En el menú File, pulsamos en Symbol File Path.

  3. En la ventana de Symbol Path escribimos:


    • SRV*rutalocal*http://msdl.microsoft.com/download/symbols


      • Aquí rutalocal es la ruta del disco duro que el depurador utilizará para almacenar los archivos de símbolos descargados. Automáticamente crea una rutalocal cuando se analiza un archivo de volcado.

      • Podemos almacenar los archivos en C:simbolos_descargados estableciéndolo en la ruta anterior: SRV*C:simbolos_descargados*http://msdl.microsoft.com/download/symbols

Aún así, podemos descargar los archivos de símbolos en nuestro sistema y usarlos si no estamos conectados a internet. Para ello sólo los tenemos que descargar desde los enlaces correspondientes a nuestro sistema los archivos.


Analizando un archivo de volcado



  1. Abrimos WinDbg

  2. En el menú File, pulsamos en Open Crash Dump

  3. Buscamos el archivo, normalmente en unidad_del_sistemamemory.dmp

  4. windbg01

  5. A la pregunta de Save Workspace Information, pulsamos No.


windbg01-ask



  1. Ventana Command.


    • Como se ve en la imagen, la línea de Bugcheck nos indica el número del stop error.


 windbg02




    • La ventana nos ofrece sugerencias desde el depurador y nos permite realizar comandos adicionales. Una vez abierto el archivo de volcado, automáticamente nos ofrece la posibilidad del comando !analyze -v. En muchos casos la información predeterminada de este comando nos será suficiente.


windbg03


windbg04

Seguimos con los Dumps

Para estar seguros que nuestro sistema podrá guardar los archivos de volcado, podemos comprobar que la unidad del sistema (normalmente C:Windows) dispone de suficiente espacio libre, que el disco dispone de suficiente espacio libre y que el disco no esté corrupto.


Un volcado de memoria completo supone que el espacio libre necesario debe ser al menos igual a la cantidad de memoria física presente en el equipo. Hay que comprobar que hay espacio suficiente en la unidad del sistema para el máximo tamaño de archivo de paginación para el archivo de volcado.


Podemos ver el tamaño máximo de archivo de paginación para cada volumen de disco desde:



  1. Panel de Control, icono sistema, pestaña avanzadas.
  2. En Rendimiento, pulsamos en configuración.
  3. En opciones de rendimiento, pestaña avanzadas.
  4. Memoria virtual, pulsamos cambiar.
  5. Vemos la información sobre el archivo de paginación. Donde nos indicará el valor actualmente destinado al archivo. Podemos indicar los valores deseados en Tamaño inicial y Tamaño Máximo.
  6. El tamaño especificado debe ser correcto y el disco tiene suficiente espacio libre para él.

Para evitar fragmentación del disco al crear el archivo de volcado de memoria es interesante establecer un tamaño inicial mayor que el que se necesita para el archivo de volcado y así no necesitar expandirlo mientras se crea el volcado de memoria.


Se ha de comprobar que la ruta del archivo de volcado de memoria, de forma predeterminada raíz_del_sistemaMemory.dmp, dispone de suficiente espacio libre para almacenar el volcado.


Finalmente para observar la posible corrupción del disco podemos comprobar la integridad del volumen, ya sea mediante el comando chkdsk /f o desde las herramientas de disco de la interfaz.


 


Analizar los errores de Stop con los volcados de memoria.


Los archivos de volcado contienen información detallada sobre el estado del sistema operativo cuando ha ocurrido el error. Podemos analizar manualmente el archivode volcado mediante las herramientas de depuración o usando procesos automatizados proporcionados por Microsoft. La información que obtenemos nos ayuda al entendimiento sobre la causa raíz del problema.


Podemos usa el servicio de informe de errores para enviar la información del archivo de volcado a Microsoft. Aunque también podemos usar Microsoft Kernel Debugger (Kd.exe) o Microsoft WinDbg Debugger (WinDbg.exe) para analizarlos manualmente.


Como una opción adicional de resolución de problemas, podemos configurar nuestro sistema para que añada una entrada en el Registro de Sistema cuando ocurre un Stop error.


Informe de errores


Si está habilitado, el informe de errores controla el sistema operativo en cuanto a errores relacionados con componentes del sistema operativo y aplicaciones. usando el servicio de informe de errores nos permite la obtención de información extra sobre el problema o condición que ha causado el stop error.


Cuando ocurre un Stop error Windows Server 2003 nos muestra en pantalla un mensaje de Stop y graba la información de diagnóstico en el archivo de volcado de memoria especificado en la pestaña Avanzada de las propiedades del sistema (que ya se ha visto como se configura). Con el propósito de informar, el sistema también graba un volcado de memoria pequeño. En el siguiente reinicio en modo normal o seguro con red y se inicia sesión como administrador, el servicio de informe de errores reune información sobre el problema y lleva a cabo diversas acciones:



  • El Seguimiento de apagado (Shutdown Event Tracker) aparece, aunque no está relacionado directamente con el servicio de informe de errores, inmediatamente después de la autenticación del administrador en el sistema después de un Stop error u otro apagado inesperado. El cuadro de diálogo permite al administrador agregar información sobre el stop error al Evento. El número y parámetros del stop error son automáticamente añadidos al campo de comentario. Después de Aceptar el administrador, se agrega un evento con la información al Registro del Sistema con un ID de evento 1076. El resto del proceso normal de inicio de sesión sigue en cuanto el seguimiento de apagado se cierra.
  • Muestra en pantalla una Alerta. Una vez el entorno de escritorio se ha iniciado, el servicio de informe de errores muestra en pantalla un cuadro de diálogo indicando que el sistema se ha recuperado de un error grave.
  • Nos proporciona la opción de envío del informe de error. Podemos enviar el informe de error no no enviarlo. Tenemos además la opción de ver los datos que contiene el informe de error y ver la ubicación del archivo XML que será enviado a Microsoft. Este archivo contiene la versión e idioma de Windows Server 2003 utilizado y una lista de todos los dispositivos y controladores cargados en el sistema en el momento de producirse el error.

    • Si pulsamos en Enviar informe de error, éste se enviará de forma anónima, incluyendo el archivo de volcado pequeño y se nos preguntará si deseamos agregar información extra para completar el informe de error. Una vez enviado se nos redirigirá al sitio web de análisis de errores en línea. Si está disponible, nos mostrará un análisis sobre el error y dependiendo de la naturaleza del error, puede que podamos realizar un seguimiento del estado del mismo.


También podemos utilizar el Editor de Directivas de grupo para personalizar el servicio de Informe de errores de diversas formas. Una de las más útiles personalizaciones es configurarlo para cargar los informes de error sin preguntar a un administrado.


Los informes de errores pueden guardarse en una carpeta compartida, que es útil para el análisis de errores que ocurren en varios y diferentes servidores. Los administradores pueden entonces analizar los errores de esos distintos servidores y filtrar que informes enviar a Microsoft para su análisis.


Sitio Web de análisis en línea de errores


Podemos usar esta web para realizar seguimiento del estado del informe de error enviado a Microsoft mediante la herramienta de informes de errores.


Para visitar el sitio web podemos ir directamente a Microsoft Online Crash Analisys o desde el enlace correspondiente de la web de recursos en Windows Resources Kit. Si estamos usando la herramienta de informe de errores ésta automáticamente nos dirigirá al sitio web al iniciar sesión en modo normal o seguro con red.


La información que se envía a Microsoft incluye:



  • Información del sistema. Versión e idioma del sistema operativo que se ejecuta.
  • Datos de hardware. Procesadores y tamaño de memoria RAM instalados.
  • Fecha y Hora. Indica el momento de la ocurrencia del Stop error.
  • Lista de los controladores en uso en el sistema. Módulos en memoria cuando se produjo el error. La información de controlador de dispositivo: nombre del archivo, fecha, versión, tamaño y desarrollador/vendedor
  • Información de contexto del procesador para el proceso que se ha detenido. Estado del hardware y del procesador, contadores de rendimiento, información de paquete multiprocesador, información de llamada a procedimiento pospuestas y las interrupciones.
  • Información de contexto del Kernel para el proceso que se ha detenido. Descripción del estado de cada página física en memoria.
  • Información de contexto del Kernel para el hilo que se ha detenido. Identificación de registros y niveles de solicitud de interrupción y incluye punteros a las estructuras de datos del sistema operativo.
  • Información de la pila de llamadas en modo kernel para el hilo interrumpido. Series de ubicaciones de memoria y punteros a la ubicación inicial.

Por supuesto podemos buscar en la Knowledge base de MS o solicitar soporte de MS si queremos una respuesta inmediata antes del análisis completo del archivo de volcado.



Archivos de símbolos y depuradores


También podemos analizar los archivos de volcado mediante depuradores de núcleo. Estos depuradores son lo primero que utilizan los desarrolladores para un análisis minucioso y exhaustivo del funcionamiento de la aplicación. Sin embargo, los depuradores de kernel son también útiles herramientas para administradores dedicados a la resolución de problemas de Stop error. En particular, pueden usarse para analizar los archivos de volcado de memoria después del error.


Un depurador es un programa que habilita a los usuarios con privilegios la depuración de programas (predeterminadamente sólo el grupo de administradores) paso a paso mediante instrucciones software, examinar datos y comprobar ciertas condiciones. Depuradores de kernel que podemos obtener de MS:



  • Depurador de Kernel. Kd.exe es una herramienta de línea de comandos que podemos usar para analizar archivos de volcado de memoria. Necesita tener instalados los archivos de símbolos en el sistema.
  • Depurador WinDbg. WinDbg.exe proporciona funcionalidad similar al Kd.exe pero usando una interfaz de usuario.

Ambas herramientas servirán al usuario para la depuración de programas (si tienen privilegios para ello), analizando el contenido de los archivos de volcado de memoria. Son una pequeña muestra de la muchas herramientas incluídas en Herramientas de depuración para Windows.