Archivos de volcado

Cuando se produce un error en modo kernel, Microsoft Windows muestra la pantalla azul con datos de comprobación de errores de forma predeterminada. Sin embargo, puede elegir entre varios comportamientos alternativos:

  • Se puede ponerse en contacto con un depurador de kernel, como WinDbg o KD.
  • Se puede escribir un archivo de volcado de memoria.
  • El sistema puede reiniciarse automáticamente.
  • Se puede escribir un archivo de volcado de memoria y el sistema se puede reiniciar automáticamente después.

Crear y analizar archivos de volcado de memoria en modo kernel.

Hay tres variedades diferentes de archivos de volcado en modo kernel. Sin embargo, ningún archivo de volcado puede ser tan útil y versátil como un depurador de kernel activo conectado al sistema que ha fallado.

Habilitar un archivo de volcado de Kernel-Mode

Durante un bloqueo del sistema, la configuración del volcado de memoria de Windows determina si se creará un archivo de volcado de memoria y, si es así, qué tamaño tendrá el archivo de volcado.

Windows Panel de control controla la configuración del volcado de memoria en modo kernel. Solo un administrador del sistema puede modificar esta configuración.

Para cambiar esta configuración, vaya a Panel de control > Sistema y sistema de seguridad>. Seleccione Configuración avanzada del sistema. En Inicio y recuperación, seleccione Configuración.

Verá el siguiente cuadro de diálogo:

crashpanel

En Escribir información de depuración, puede especificar una configuración de archivo de volcado en modo kernel. Solo se puede crear un archivo de volcado para cualquier bloqueo determinado.

También puede seleccionar o anular la selección del evento Escribir un evento en el registro del sistema y reiniciar automáticamente las opciones.

La configuración que seleccione se aplicará a cualquier archivo de volcado en modo kernel creado por un bloqueo del sistema, independientemente de si el bloqueo del sistema se produjo accidentalmente o si fue causado por el depurador. Consulte Forzar un bloqueo del sistema para obtener más información sobre cómo provocar un bloqueo deliberado.

Sin embargo, esta configuración no afecta a los archivos de volcado creados por el comando .dump .

Crear un archivo de volcado sin un bloqueo del sistema

Si KD o WinDbg realizan la depuración en modo kernel, puede provocar que se escriba un archivo de volcado en modo kernel sin bloquear el equipo de destino.

Este archivo de volcado de memoria puede ser un volcado de memoria completo o un pequeño volcado de memoria. La configuración de Panel de control no es relevante para esta acción.

Mientras que los archivos de volcado causados por un bloqueo del sistema se escriben en el equipo que se ha bloqueado, este archivo de volcado se escribirá en el equipo host.

.dump (Crear archivo de volcado)

El comando .dump crea un archivo de volcado de memoria en modo de usuario o modo kernel.

dbgcmd

.dump [options] FileName
.dump /?

Parámetros

Opciones
Representa una o varias de las siguientes opciones.

/a
Cree volcados de memoria para todos los procesos (requiere -u).

/b[a]
Volcado de paquetes en un CAB y eliminación de volcado de memoria. Se incluye información adicional si se especifica la opción .

Comentario /c <>
Agregue un comentario (no se admite en todos los formatos).

/j <addr>
Proporcione una dirección JIT_DEBUG_INFO.

/o
Sobrescribe un archivo de volcado existente con el mismo nombre. Si esta opción no se usa y hay un archivo con el mismo nombre de archivo, el archivo de volcado no se escribe.

/u
Anexe un identificador único al nombre del volcado de memoria.

/f[FullOptions]
(Modo kernel:) Crea un volcado de memoria completo.

(Modo de usuario:) No se admite. Anteriormente, esta opción crearía un volcado de memoria en modo usuario completo, que es un formato heredado con menos información que el formato de minivolcado más reciente.

Puede agregar lo siguiente a FullOptions para cambiar el contenido del archivo de volcado de memoria; la opción distingue mayúsculas de minúsculas.

FullOptionEfecto
yAgrega información de registro de AVX al archivo de volcado de memoria.

/m[MiniOptions]
Crea un volcado de memoria pequeño (en modo kernel) o un minivolcado (en modo de usuario) Para obtener más información, vea Archivos de volcado en modo de usuario. Si no se especifica /f ni /m , /m es el valor predeterminado.

En el modo de usuario, /m se puede seguir con miniopciones adicionales que especifican datos adicionales que se van a incluir en el volcado. Si no se incluye ningún MiniOptions , el volcado incluirá información de módulo, subproceso y pila, pero ningún dato adicional. Puede agregar cualquiera de los siguientes MiniOptions para cambiar el contenido del archivo de volcado; distinguen mayúsculas de minúsculas.

MiniOptionEfecto
aCrea un minivolcado con todas las adiciones opcionales. La opción /ma es equivalente a /mfFhut: agrega datos de memoria completa, controla los datos, la información del módulo descargado, la información de memoria básica y la información de tiempo de subproceso al minivolcado. Cualquier error al leer la memoria inaccessable da como resultado la finalización de la generación de minivolcados.
UnLa opción /mA es equivalente a /ma, salvo que omite cualquier error al leer la memoria accesible y continúa generando el minivolcado.
fAgrega datos de memoria completa al minivolcado. Se incluirán todas las páginas confirmadas accesibles que pertenecen a la aplicación de destino.
FAgrega toda la información básica de memoria al minivolcado. Esto agrega una secuencia al minivolcado que contiene toda la información básica de memoria, no solo información sobre la memoria válida. Esto permite al depurador reconstruir el diseño de memoria virtual completo del proceso cuando se depura el minivolcado.
hAgrega datos sobre los identificadores asociados a la aplicación de destino al minivolcado.
uAgrega información del módulo descargado al minivolcado.
tAgrega información adicional sobre subprocesos al minivolcado. Esto incluye tiempos de subproceso, que se pueden mostrar mediante la extensión !runaway o el comando .ttime (Display Thread Times) al depurar el minivolcado.
iAgrega memoria secundaria al minivolcado. La memoria secundaria es cualquier memoria a la que hace referencia un puntero en la pila o el almacén de respaldo, además de una pequeña región que rodea esta dirección.
pAgrega datos de bloque de entorno de proceso (PEB) y bloque de entorno de subprocesos (TEB) al minivolcado. Esto puede ser útil si necesita acceder a la información del sistema windows con respecto a los procesos y subprocesos de la aplicación.
wAgrega todas las páginas privadas de lectura y escritura confirmadas al minivolcado.
dAgrega todos los segmentos de datos de lectura y escritura dentro de la imagen ejecutable al minivolcado.
cAgrega secciones de código dentro de imágenes.
rElimina de la minivolcado esas partes de la pila y almacena la memoria que no son útiles para volver a crear el seguimiento de la pila. También se eliminan variables locales y otros valores de tipo de datos. Esta opción no hace que el minivolcado sea más pequeño (ya que estas secciones de memoria son simplemente cero), pero es útil si desea proteger la privacidad de otras aplicaciones.
RElimina las rutas de acceso completas del módulo desde el minivolcado. Solo se incluirán los nombres de módulo. Esta es una opción útil si desea proteger la privacidad de la estructura de directorios del usuario.
yAgrega información de registro de AVX al archivo de volcado de memoria.

Opciones del modo kernel

Las siguientes opciones están disponibles en modo kernel.

/K
Cree un volcado de memoria solo con memoria del kernel.

/Ka
Cree un volcado de memoria con el kernel activo y la memoria en modo de usuario.

Información adicional

Para obtener una descripción de los archivos de volcado del modo kernel y una explicación de su uso, consulte Archivos de volcado en modo kernel.

Observaciones

Este comando se puede usar en diversas situaciones:

  • Durante la depuración en modo usuario activo, este comando dirige a la aplicación de destino para generar un archivo de volcado de memoria, pero la aplicación de destino no finaliza.
  • Durante la depuración en modo kernel activo, este comando dirige al equipo de destino para generar un archivo de volcado de memoria, pero el equipo de destino no se bloquea.
  • Durante la depuración del volcado de memoria, este comando crea un nuevo archivo de volcado de memoria del antiguo. Esto es útil si tiene un archivo de volcado de memoria grande y desea crear uno más pequeño.

Puede controlar qué tipo de archivo de volcado se generará:

  • En el modo kernel, para generar un volcado de memoria completo, use la opción /f . Para generar un volcado de memoria pequeño, use la opción /m (o ninguna opción). El comando .dump no puede generar un volcado de memoria del kernel.
  • En el modo de usuario, .dump/m[MiniOptions] es la mejor opción. Aunque m significa minivolcado, los archivos de volcado creados mediante este MiniOption pueden variar de tamaño de muy pequeño a muy grande. Al especificar el MiniOptions adecuado, puede controlar exactamente qué información se incluye. Por ejemplo, .dump /ma genera un volcado de memoria con una gran cantidad de información. El comando anterior, .dump /f, genera un archivo de volcado estándar de tamaño moderado y no se puede personalizar.

No se puede especificar qué proceso se volcado. Todos los procesos en ejecución se volcarán.

Las opciones /xc/xr/xp y /xt se usan para almacenar información de excepción y contexto en el archivo de volcado de memoria. Esto permite que el comando .ecxr (Mostrar registro de contexto de excepción) se ejecute en este archivo de volcado de memoria.

En el ejemplo siguiente se creará un minivolcado en modo de usuario, que contiene memoria completa y controla la información:

dbgcmdCopiar

0:000> .dump /mfh myfile.dmp

La información de identificador se puede leer mediante el comando de extensión !handle .