JBeExJBeEx

Archivos de volcado

Archivos de volcado

Un volcado de memoria es un archivo que guarda una copia de la memoria del sistema en el momento de un fallo grave o pantalla azul. Es la pieza clave para diagnosticar qué controlador o componente provocó el error. En esta guía verás cómo configurar Windows 11 y Windows 10 para que generen volcados, qué tipos existen y cómo crear uno manualmente con el comando .dump de WinDbg.

Qué hace Windows cuando se produce un error en modo kernel

Ante un error grave en modo kernel, Windows muestra por defecto la pantalla azul con el código de comprobación de errores. Según cómo lo configures, además puede:

  • Ceder el control a un depurador de kernel conectado, como WinDbg o KD.
  • Escribir un archivo de volcado de memoria.
  • Reiniciarse automáticamente.
  • Escribir el volcado y reiniciarse después (el comportamiento habitual).

Tipos de volcado de memoria en modo kernel

  • Volcado de memoria pequeño (minivolcado): el más ligero. Incluye el código de error, la lista de controladores cargados y la pila del hilo que falló. Se guarda en C:\Windows\Minidump.
  • Volcado de memoria del kernel: guarda solo la memoria usada por el kernel y los controladores. Suficiente en la mayoría de diagnósticos.
  • Volcado de memoria completo: copia toda la memoria física. Es el más completo, pero ocupa tanto como la RAM instalada.
  • Volcado de memoria automático: equivale al de kernel, pero Windows ajusta el tamaño del archivo de paginación según lo necesite. Es la opción predeterminada.
  • Volcado de memoria activo: parecido al completo, pero descarta páginas que no suelen ser útiles (por ejemplo, la memoria de máquinas virtuales en un host Hyper-V), por lo que ocupa menos.

Los volcados de kernel, completo, automático y activo se guardan por defecto en C:\Windows\MEMORY.DMP. Solo se escribe un volcado por cada bloqueo.

Cómo habilitar los volcados de memoria en Windows 11 y Windows 10

Necesitas una cuenta de administrador para cambiar esta configuración.

1. Abre la configuración avanzada del sistema

Pulsa Win+R, escribe sysdm.cpl y pulsa Intro. También puedes llegar desde Configuración → Sistema → Información → Configuración avanzada del sistema.

2. Entra en Inicio y recuperación

En la pestaña Opciones avanzadas, dentro del apartado Inicio y recuperación, pulsa Configuración. Verás este cuadro de diálogo:

Cuadro de diálogo Inicio y recuperación de Windows con las opciones de volcado de memoria

3. Elige el tipo de volcado

En el apartado Error del sistema, despliega Escribir información de depuración y selecciona el tipo de volcado que quieras. Desde aquí también puedes activar o desactivar Escribir un evento en el registro del sistema y Reiniciar automáticamente; desmarcar esta última te permite leer con calma el código de la pantalla azul.

4. Revisa el archivo de paginación

Windows escribe el volcado primero en el archivo de paginación, así que este debe estar en la unidad del sistema y tener tamaño suficiente. Para un volcado completo necesitas un archivo de paginación al menos tan grande como la RAM más un pequeño margen. Si lo dejas administrado por el sistema, no tendrás que preocuparte con el volcado automático.

5. Reinicia el equipo

Acepta los cambios y reinicia para que se apliquen.

Ten en cuenta que esta configuración se aplica a cualquier volcado generado por un bloqueo, tanto si el fallo es accidental como si lo provocas tú desde el depurador (consulta Forzar un bloqueo del sistema). En cambio, no afecta a los volcados creados con el comando .dump. Y recuerda que un volcado completo puede ocupar muchos gigas en disco.

Crear un volcado sin bloquear el sistema con.dump

Si estás depurando en modo kernel con WinDbg o KD, puedes generar un volcado sin que el equipo de destino se bloquee. En este caso la configuración de Inicio y recuperación no interviene, y el archivo se guarda en el equipo host (el que ejecuta el depurador), no en el de destino. La sintaxis es:

.dump [opciones] NombreArchivo.dmp
.dump /?

El comando .dump sirve en tres situaciones:

  • Depuración en modo usuario: la aplicación genera un volcado pero sigue ejecutándose.
  • Depuración en modo kernel: el equipo de destino genera un volcado sin bloquearse.
  • Depuración de un volcado existente: crea un volcado nuevo a partir del anterior, por ejemplo uno más pequeño a partir de uno grande.

Opciones generales de.dump

  • /o: sobrescribe un archivo existente con el mismo nombre. Sin ella, si el archivo ya existe, no se escribe nada.
  • /u: añade un identificador único al nombre del archivo.
  • /a: crea volcados de todos los procesos depurados (requiere /u).
  • /b[a]: empaqueta el volcado en un archivo CAB y elimina el original; con a incluye información adicional.
  • /c <comentario>: añade un comentario (no todos los formatos lo admiten).
  • /j <dirección>: indica una dirección JIT_DEBUG_INFO.

Opciones para modo kernel

  • /f: crea un volcado de memoria completo. Puedes añadir y (/fy) para incluir los registros AVX.
  • /m: crea un volcado de memoria pequeño. Es la opción por defecto si no indicas /f ni /m.
  • /k: crea un volcado solo con la memoria del kernel.
  • /ka: crea un volcado con la memoria del kernel y la memoria activa de modo usuario.

Opciones de minivolcado para modo usuario

En modo usuario, la opción /f ya no se admite (generaba un formato antiguo con menos información), así que lo recomendable es /m seguida de modificadores. Aunque se llame "minivolcado", su tamaño puede ir de muy pequeño a muy grande según lo que incluyas. Sin modificadores, guarda información de módulos, hilos y pila. Los modificadores distinguen mayúsculas de minúsculas:

  • a: todas las adiciones opcionales. /ma equivale a /mfFhut. Si falla al leer memoria inaccesible, se detiene la generación.
  • A: igual que a, pero ignora los errores de lectura y continúa.
  • f: memoria completa (todas las páginas confirmadas accesibles del proceso).
  • F: toda la información básica de memoria, para reconstruir el mapa de memoria virtual del proceso.
  • h: información de los identificadores (handles) del proceso, legible luego con !handle.
  • u: información de módulos descargados.
  • t: datos extra de hilos, como sus tiempos de ejecución, visibles con !runaway o .ttime.
  • i: memoria secundaria, es decir, la memoria referenciada por punteros en la pila y una pequeña zona a su alrededor.
  • p: bloques de entorno de proceso (PEB) y de hilo (TEB).
  • w: todas las páginas privadas de lectura/escritura confirmadas.
  • d: segmentos de datos de lectura/escritura de la imagen ejecutable.
  • c: secciones de código de las imágenes.
  • r: pone a cero las partes de la pila que no sirven para reconstruir la traza (variables locales, etc.). No reduce el tamaño, pero protege la privacidad.
  • R: elimina las rutas completas de los módulos y deja solo sus nombres.
  • y: incluye los registros AVX.

Además, las opciones /xc, /xr, /xp y /xt guardan en el volcado la información de excepción y contexto, de modo que después puedas usar .ecxr al analizarlo.

Ejemplos de uso

Minivolcado de modo usuario con memoria completa e identificadores:

0:000> .dump /mfh C:\Volcados\miapp.dmp

Minivolcado con toda la información posible, sobrescribiendo si existe:

0:000> .dump /ma /o C:\Volcados\miapp.dmp

Volcado completo en una sesión de depuración de kernel:

kd> .dump /f C:\Volcados\completo.dmp

Tienes la referencia completa en la documentación oficial de .dump (Crear archivo de volcado) y en Archivos de volcado en modo usuario.

Preguntas frecuentes

¿Qué tipo de volcado me conviene?

Para un usuario doméstico, el automático o el pequeño bastan para identificar el controlador culpable. El completo solo merece la pena si un técnico o Microsoft te lo pide.

¿Por qué no se genera ningún volcado tras la pantalla azul?

Las causas más habituales son un archivo de paginación desactivado o demasiado pequeño, poco espacio libre en la unidad del sistema o que la opción esté en "(ninguno)".

¿Puedo borrar los volcados antiguos?

Sí. Una vez resuelto el problema, puedes eliminarlos manualmente o con el Liberador de espacio en disco para recuperar espacio.