Archivos de volcado en modo de usuario

En este artículo, obtenga información general sobre los archivos de volcado de modo de usuario y cómo usarlos para ayudar a resolver errores y bloqueos.

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

Tipos de archivos de volcado de modo de usuario

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

Puede obtener una cantidad sustancial 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 obtenga de depurar el bloqueo mediante un depurador.

Volcados de memoria en modo usuario completos

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

  • Espacio de memoria completo 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 produjo el volcado de memoria.

Puede reducir un archivo de volcado de modo usuario completo en un minivolcado. Para reducir un archivo de volcado de modo de 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 usuario completo. Por ejemplo, los .dump /mf comandos y .dump /ma crean archivos más grandes y completos que el .dump /f comando .

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

Minivolcados

El tamaño y el contenido de un archivo minivolcado varían en función del programa que se va a volcar y la aplicación que realiza el volcado y las opciones seleccionadas. A veces, un archivo minivolcado es moderadamente grande e incluye la memoria completa y la tabla de identificadores. Otras veces, el archivo minivolcado es mucho más pequeño. Por ejemplo, un archivo de minivolcado podría contener solo información sobre un único subproceso, o podría 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 minivolcados 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 de usuario.

Si crea un archivo minivolcado mediante el depurador, puede elegir qué información se va a incluir. El .dump /m comando 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 de 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 /ma opción es equivalente a /mfFhut. Agrega datos de memoria completa, controla los datos, la información del módulo descargado, la información básica de memoria y la información de tiempo de subproceso al minivolcado.
/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 (Tiempos de subproceso de visualización) 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 los datos del bloque de entorno de proceso y del bloque de subproceso al minivolcado. Esta información puede ser útil si necesita acceso a la información del sistema 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 imágenes.
/mr Elimina de las partes de minivolcado de la pila y almacena la memoria que no se usan para volver a crear el seguimiento de la pila. Las variables locales y otros valores de tipo de datos también se eliminan. Esta opción no hace que el minivolcado sea más pequeño (las secciones de memoria no utilizada están cero), pero resulta útil si desea proteger la privacidad de otras aplicaciones.
/mR Elimina las rutas de acceso completas del módulo desde el 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 conmutador. 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, vea .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
  • CDB
  • WinDbg

ProcDump

ProcDump es una utilidad de línea de comandos que puede usar para supervisar una aplicación de picos de CPU y 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 un bloqueo de ventana que windows y el Administrador de tareas usan) 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 de usuario mediante la utilidad ProcDump Sysinternals, consulte ProcDump.

CDB y WinDbg

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 winDbg.

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

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

Para obtener más información sobre las herramientas, consulte Introducción con depuración y depuración de Windowsmediante CDB.

Creación de un archivo de volcado de memoria automáticamente

Cuando se produce un error de aplicación, Windows puede responder de varias maneras, en función de la configuración de depuración posterior. 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 de usuario. Para obtener más información, consulte Habilitación de la depuración posterior.

Creación de 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 de minivolcado que contenga exactamente la cantidad de información que desee.

Reducir un archivo de volcado de memoria existente

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

Depuración de viajes de tiempo

Otra opción para depurar aplicaciones en modo de usuario es La depuración de viajes de 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 provocaron el error y cómo corregir el problema.

TTD tiene ventajas significativas sobre los archivos de volcado de memoria, que a menudo faltan la ejecución del código que provocó 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 Introducción a la depuración de viajes de tiempo.

Pasos siguientes