Compartir a través de


Archivos de volcado en modo usuario

Este artículo incluye información general sobre los archivos de volcado en modo usuario y cómo usarlos para ayudar a resolver errores y bloqueos.

Para obtener información sobre cómo analizar un archivo de volcado, consulte Análisis de un archivo de volcado en modo usuario.

Tipos de archivos de volcado en modo de usuario

Hay disponibles varios tipos de archivos de volcado de memoria en modo usuario. Los diferentes tipos de archivos de volcado se dividen en dos categorías:

Puede obtener una cantidad considerable de información mediante el análisis de un archivo de volcado de memoria. Sin embargo, ningún archivo de volcado puede proporcionar la cantidad de información que se obtiene al depurar el bloqueo mediante un depurador.

Volcados completos en modo usuario

Un volcado de modo de usuario completo es el archivo de volcado básico en modo de usuario. Un archivo de volcado de modo usuario completo incluye:

  • Todo el espacio de memoria de un proceso.
  • Imagen ejecutable del programa.
  • Tabla de identificadores.
  • Otra información que ayuda al depurador a reconstruir la memoria que estaba en uso cuando se ha producido el volcado de memoria.

Puede reducir un archivo de volcado completo en modo usuario completo en un minivolcado. Para reducir un archivo de volcado en modo usuario completo, primero cargue el archivo de volcado en el depurador. A continuación, use el comando .dump (Crear archivo de volcado de memoria) para guardar un nuevo archivo de volcado en formato minivolcado.

A pesar de sus nombres, el archivo de minivolcado más grande contiene más información que el archivo de volcado de modo de usuario completo. Por ejemplo, los comandos .dump /mf y .dump /ma crean archivos más grandes y completos que el comando .dump /f.

En el modo usuario, .dump /m[MiniOptions] suele ser la mejor opción. Los archivos de volcado que cree mediante este conmutador pueden variar en tamaño desde muy pequeños a muy grandes. Al especificar el modificador MiniOptions correcto, puede controlar exactamente qué información se incluye.

Minivolcados

El tamaño y el contenido de un archivo de minivolcado varían según el programa que se está volcando y de la aplicación que realiza el volcado y las opciones seleccionadas. A veces, un archivo de minivolcado es moderadamente grande e incluye la memoria completa y la tabla de identificadores. Otras veces, el archivo de minivolcado es mucho menor. Por ejemplo, un archivo de minivolcado puede contener solo información sobre un único subproceso, o puede contener solo información sobre los módulos a los que se hace referencia en la pila.

El término minivolcado es engañoso porque los archivos de minivolcado más grandes contienen más información que un archivo de volcado de modo usuario completo. Por ejemplo, .dump /mf o .dump /ma crea un archivo mayor y más completo que .dump /f. Por este motivo, se recomienda usar .dump /m[MiniOptions] en lugar de crear todos los archivos de .dump /f volcado en modo usuario.

Si crea un archivo de minivolcado mediante el depurador, puede elegir qué información desea incluir. El comando .dump /m incluye información básica sobre los módulos cargados que componen el proceso de destino, la información de subprocesos y la información de pila. Puede modificar el comando básico mediante cualquiera de las opciones del modificador que se describen en la tabla siguiente:

Opción .dump Efecto en el archivo de volcado de memoria
/ma Crea un minivolcado con todas las adiciones opcionales. La opción /ma es equivalente a /mfFhut. Agrega al minivolcado datos de memoria completa, datos del identificador, información de módulo descargado, información de memoria básica e información de tiempo de subproceso.
/mf Agrega datos de memoria completa al minivolcado. Se incluyen todas las páginas confirmadas accesibles que pertenecen a la aplicación de destino.
/mF Agrega toda la información básica de memoria al minivolcado. Este modificador agrega una secuencia al minivolcado que contiene toda la información básica de memoria, no solo información sobre la memoria válida. El depurador usa la información para reconstruir el diseño de memoria virtual completo del proceso cuando se depura el minivolcado.
/mh Agrega datos sobre los identificadores asociados a la aplicación de destino al minivolcado.
/mu Agrega información del módulo descargado al minivolcado. Esta opción solo está disponible en Windows Server 2003 y versiones posteriores de Windows.
/mt Agrega más información de subproceso al minivolcado. La información del subproceso incluye tiempos de subproceso, que se pueden mostrar mediante .ttime (Mostrar tiempos de subproceso) al depurar el minivolcado.
/mi Agrega 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.
/mp Agrega datos de bloque de entorno de proceso y de entorno de subprocesos al minivolcado. Esta información puede ser útil si necesita acceso a la información del sistema de Windows con respecto a los procesos y subprocesos de la aplicación.
/mw Agrega todas las páginas privadas de lectura y escritura confirmadas al minivolcado.
/md Agrega todos los segmentos de datos de lectura y escritura dentro de la imagen ejecutable al minivolcado.
/mc Agrega secciones de código dentro de las imágenes.
/mr Elimina del minivolcado las partes de la pila y la memoria que no se usa para volver a crear el seguimiento de la pila. También se eliminan las variables locales y otros valores de tipo de datos. Esta opción no hace que el minivolcado sea más pequeño (las secciones de memoria no usadas se ponen a cero), pero es útil si quieres proteger la privacidad de otras aplicaciones.
/mR Elimina las rutas de acceso completas de los módulos del minivolcado. Solo se incluyen los nombres de módulo. Esta opción es útil si desea proteger la privacidad de la estructura de directorios del usuario.

Puede combinar estas opciones de interruptor. Por ejemplo, use el comando .dump /mfiu para crear un minivolcado moderadamente grande que contenga memoria descargada y secundaria. Use el comando .dump /mrR para crear un minivolcado que quite parte de la información del usuario. Para obtener detalles completos de la sintaxis, consulte .dump (Crear archivo de volcado de memoria).

Herramientas que se usarán para crear un archivo de volcado de memoria

Hay varias herramientas diferentes que puede usar para crear un archivo de volcado en modo de usuario:

ProcDump

ProcDump es una utilidad de línea de comandos que puede usar para supervisar una aplicación en busca de picos de CPU y para generar volcados de memoria durante un pico. Un administrador o desarrollador puede usar los archivos de volcado de memoria para determinar la causa del pico. ProcDump también incluye la supervisión de ventanas bloqueadas (mediante la misma definición de ventana bloqueada que usan Windows y el Administrador de tareas) y excepciones no controladas. Puede usar ProcDump para generar volcados en función de los valores de los contadores de rendimiento del sistema. ProcDump también puede servir como una utilidad de volcado de proceso general que puede insertar en otros scripts.

Para obtener información sobre cómo crear un archivo de volcado en modo usuario mediante la utilidad ProcDump Sysinternals, consulte ProcDump.

WinDbg y CDB

El Depurador de consola (CDB) y el Depurador de Windows (WinDbg) son herramientas de depuración que se incluyen en el Kit de desarrollo de software de Windows y el Kit de controladores de Windows. Consulte las opciones de instalación en Descargar e instalar el depurador de Windows de WinDbg.

Puede usar CDB o WinDbg para crear archivos de volcado en modo de usuario de varias formas:

  • Cree automáticamente un archivo de volcado de memoria.
  • Cree archivos de volcado de memoria al depurar.
  • Reduzca un archivo de volcado existente.

Para obtener más información sobre las herramientas, consulte Introducción a la depuración de Windows y Depurar mediante CDB.

Crear automáticamente un archivo de volcado de memoria

Cuando se produce un error de aplicación, Windows puede responder de varias maneras, dependiendo de la configuración de depuración post mortem. Si esta configuración indica a una herramienta de depuración que cree un archivo de volcado de memoria, se crea un archivo de volcado de memoria en modo usuario. Para obtener más información, consulte Habilitación de la depuración post mortem.

Crear archivos de volcado de memoria al depurar

Cuando CDB o WinDbg depuran una aplicación en modo de usuario, también puede usar el comando .dump (Crear archivo de volcado de memoria) para crear un archivo de volcado.

Este comando no hace que la aplicación de destino finalice. Al seleccionar opciones de comandos específicas, puede crear un archivo minivolcado que contenga exactamente la cantidad de información que desee.

Reduzca un archivo de volcado existente

Puede usar CDB o WinDbg para reducir un archivo de volcado. Para reducir un archivo de volcado de memoria, comience a depurar un archivo de volcado existente. A continuación, use el comando .dump para crear un archivo de volcado de memoria de un tamaño menor.

Depuración de viaje en el tiempo

Otra opción para depurar aplicaciones en modo de usuario es la Depuración de viajes en el tiempo (TTD). TTD es una herramienta que puede usar para registrar el proceso mientras se ejecuta. Puede reproducir la grabación de la sesión del depurador para encontrar el error. Puede ir fácilmente a diferentes partes de la grabación para comprender las condiciones que generaron el error y cómo corregir el problema.

TTD tiene importantes ventajas sobre los archivos de volcado de memoria, que a menudo no están presentes en la ejecución del código que ha provocado el error. La capacidad de desplazarse hacia atrás en la ejecución del código puede ser útil para determinar la causa principal.

Para obtener más información, consulte Información general de depuración de viajes en el tiempo.

Consulte también