Compartir a través de


Usar archivos de volcado de memoria para depurar bloqueos de la aplicación en Visual Studio

Archivos de volcado de memoria con o sin montones; crear un archivo de volcado de memoria; abrir un archivo de volcado de memoria; buscar los archivos binarios, archivos pdb y el archivo de origen de un archivo de volcado de memoria.

Contenido

¿Qué es un archivo de volcado de memoria?

Archivos de volcado de memoria, con o sin montones

Requisitos y limitaciones

Crear un archivo de volcado de memoria

Abrir un archivo de volcado de memoria

Buscar archivos binarios, de símbolos (.pdb) y de código fuente

¿Qué es un archivo de volcado de memoria?

Un archivo de volcado de memoria es una instantánea de una aplicación en el punto temporal en el que se realiza el volcado de memoria. Muestra qué proceso se ejecutaba y qué módulos se cargaron. Si el volcado de memoria se guardó con información de montón, el archivo de volcado de memoria contiene una instantánea de los datos que se encontraban en la memoria de la aplicación en ese momento. Abrir un archivo de volcado de memoria con un montón en Visual Studio es como detener en un punto de interrupción en una sesión de depuración. Aunque no puede continuar la ejecución, puede examinar las pilas, los subprocesos y los valores de las variables de la aplicación cuando se produjo el volcado de memoria.

Los volcados de memoria se utilizan principalmente para problemas de depuración que suceden en equipos a los que el desarrollador no tiene acceso. Por ejemplo, puede utilizar un archivo de volcado de memoria desde el equipo de un cliente cuando no pueda reproducir el bloqueo del cliente en su equipo. Los evaluadores también crean volcados de memoria para guardar datos sobre bloqueos y, de este modo, usar la máquina de pruebas para realizar más pruebas. El depurador de Visual Studio puede guardar archivos de volcado de memoria de código administrado o nativo. El depurador puede cargar archivos de volcado de memoria creados por Visual Studio u otros programas que guardan archivos en formato de minivolcado.

Volver al principioContenido

Archivos de volcado de memoria, con o sin montones

Puede crear archivos de volcado de memoria con o sin información del montón.

  • Los archivos de volcado de memoria con montones contienen una instantánea de la memoria de la aplicación. Esto incluye los valores de las variables en el momento en que se creó el volcado de memoria. Si carga un archivo de volcado de memoria que se guardó con un montón, Visual Studio puede cargar los símbolos incluso si no se encuentra el archivo binario de la aplicación. Visual Studio también guarda los archivos binarios de los módulos nativos cargados en el archivo de volcado de memoria, lo que puede facilitar mucho más la depuración.

  • Los archivos de volcado de memoria sin montones tienen un tamaño mucho menor que los archivos de volcado de memoria con información de montón. Sin embargo, el depurador debe cargar los archivos binarios de aplicación para encontrar la información de símbolos. Los archivos binarios deben coincidir exactamente con los archivos binarios que se usaron al crear el volcado de memoria. Solo los valores de las variables de pila se guardan en los archivos de volcado de memoria sin datos de montón.

Volver al principioContenido

Requisitos y limitaciones

  • La depuración de archivos de volcado de memoria de código optimizado puede resultar confusa. Por ejemplo, la inclusión en línea de funciones por parte del compilador puede dar lugar a pilas de llamadas inesperadas y otras optimizaciones podrían cambiar la duración de las variables.

  • Los archivos de volcado de memoria de equipos de 64 bits deben depurarse en una instancia de Visual Studio que se ejecute en un equipo de 64 bits.

  • En versiones de Visual Studio anteriores a VS 2013, los volcados de las aplicaciones de 32 bits que se ejecutaban en equipos de 64 bits recopilados por algunas herramientas (como el Administrador de tareas y WinDbg de 64 bits) no se podían abrir en Visual Studio. Esta limitación se ha eliminado en VS 2013.

  • Visual Studio puede depurar archivos de volcado de memoria de aplicaciones nativas desde dispositivos ARM. Visual Studio también puede depurar archivos de volcado de memoria de aplicaciones administradas desde dispositivos ARM pero solo en el depurador nativo.

  • Para depurar archivos de volcado de memoria en Visual Studio 2013 de modo kernel, descargue la versión de Windows 8.1 de las Herramientas de depuración para Windows. Vea Depuración del kernel en Visual Studio.

  • Visual Studio no puede depurar archivos de volcado de memoria guardados en el formato de volcado de memoria anterior denominado volcado de memoria completo en modo usuario. Tenga en cuenta que un volcado de memoria completo en modo usuario no es igual que un volcado de memoria con montón.

  • Para depurar con SOS.dll (Extensión de depuración de SOS) en Visual Studio, debe instalar las Herramientas de depuración para Windows que forman parte del Kit para controladores de Windows (WDK). Vea la página de Windows 8.1 Preview: descargar kits y herramientas.

Volver al principioContenido

Crear un archivo de volcado de memoria

Para crear un archivo de volcado de memoria con Visual Studio:

  • Mientras depura un proceso en Visual Studio, puede guardar un archivo de volcado de memoria cuando el depurador se ha detenido en una excepción o en un punto de interrupción. Elija Guardar volcado como, Depurar. En el cuadro de diálogo Guardar volcado como, en el cuadro de lista Guardar como tipo, puede seleccionar Minivolcado o Minivolcado con montón (predeterminado).

  • Si ha habilitado Depuración Just-In-Time en Visual Studio, puede asociar el depurador a un proceso bloqueado que se ejecute fuera del depurador y, a continuación, guardar un archivo de volcado de memoria. Vea Crear asociaciones con procesos en ejecución con el depurador de Visual Studio.

También puede crear archivos de volcado de memoria con cualquier programa que admita el formato de minivolcado de Windows. Por ejemplo, la utilidad de línea de comandos Procdump de Windows Sysinternals puede crear archivos de volcado de memoria correspondientes a bloqueos de procesos basados en desencadenadores o a petición. Vea Requisitos y limitaciones en este tema para obtener información adicional sobre cómo usar otras herramientas para crear archivos de volcado de memoria.

Volver al principioContenido

Abrir un archivo de volcado de memoria

  1. En Visual Studio, elija Archivo, Abrir, Archivo.

  2. En el cuadro de diálogo Abrir archivo, busque y seleccione el archivo de volcado de memoria. Normalmente, tendrá la extensión .dmp. A continuación, elija Aceptar.

  3. Aparece la ventana Resumen del archivo de volcado de memoria. En esta ventana, puede ver información de resumen de depuración para el archivo de volcado de memoria, establecer la ruta de acceso de símbolos, iniciar la depuración y copiar la información de resumen en el portapapeles.

    Página de resumen de minivolcado

  4. Para iniciar la depuración, vaya a la sección Acciones y elija Depurar con Solo nativo o Depurar con Mixto.

Buscar archivos binarios, de símbolos (.pdb) y de código fuente

Para utilizar todas las características de Visual Studio para depurar un archivo de volcado de memoria, necesita acceso a:

  • El archivo .exe para el que se ha realizado el volcado de memoria y otros archivos binarios (archivos DLL, etc.) usados en el proceso de volcado de memoria.

    Si está depurando un volcado de memoria con datos del montón, Visual Studio puede solventar el problema de que falten archivos binarios de algunos módulos, pero debe tener archivos binarios para suficientes módulos para poder generar pilas de llamadas válidas. Visual Studio incluye los módulos nativos en un archivo de volcado de memoria con el montón.

  • Archivos de símbolos (.pdb) del archivo .exe y otros archivos binarios.

  • Archivos de código fuente de los módulos que le interesan.

    El archivo ejecutable y los archivos .pdb deben coincidir exactamente con la versión y la compilación de los archivos utilizados en el momento en el que se creó el volcado de memoria.

    Puede depurar utilizando el desensamblado de los módulos si no encuentra los archivos de código fuente.

Rutas de acceso de búsqueda predeterminadas de los archivos ejecutables

Visual Studio busca automáticamente en estas ubicaciones archivos ejecutables que no se incluyen en el archivo de volcado de memoria:

  1. Directorio que contiene el archivo de volcado de memoria.

  2. Ruta de acceso del módulo que se especifica en el archivo de volcado de memoria. Es la ruta de acceso del módulo en el equipo en el que se recopiló el volcado de memoria.

  3. Las rutas de acceso de símbolos especificadas en la página Depuración, Opciones, Símbolos del cuadro de diálogo Herramientas, Opciones de Visual Studio. Puede agregar más ubicaciones que desee buscar en esta página.

Usar páginas no binarias / de símbolos/ de origen

Si Visual Studio no puede encontrar los archivos necesarios para depurar un módulo en el volcado de memoria, mostrará la página correspondiente (No se encontró ningún binario, No se encontraron símbolos o No se encontró ningún origen). Estas páginas ofrecen información detallada acerca de la causa del problema y proporcionan vínculos de acción que pueden ayudarle a identificar la ubicación correcta de los archivos. Vea Especificar archivos de código fuente y símbolos (.pdb) en el depurador de Visual Studio.

Volver al principioContenido

Vea también

Conceptos

Depuración Just-In-Time en Visual Studio

Depurar la aplicación grabando la ejecución de código con IntelliTrace

Otros recursos

Especificar archivos de código fuente y símbolos (.pdb) en el depurador de Visual Studio