Compartir a través de


Ejemplo 10: Detección de una fuga de memoria del montón en un proceso

En este ejemplo se usa GFlags y montón de volcado de modo de usuario (UMDH, umdh.exe), una herramienta incluida en Herramientas de depuración de Microsoft para Windows.

Para detectar una fuga en la memoria del montón en notepad.exe

  1. Establezca la marca Crear base de datos de seguimiento de pila en modo de usuario (ust) para el archivo de imagen de notepad.exe.

    El siguiente comando usa GFlags para establecer la marca de base de datos de seguimiento de pila Crear modo de usuario . Usa el parámetro /i para identificar el archivo de imagen y la abreviatura ust de la marca.

    gflags /i Notepad.exe +ust 
    

    Como resultado de este comando, se crea un seguimiento de pila en modo de usuario para todas las nuevas instancias del proceso del Bloc de notas.

  2. Establezca la ruta de acceso del archivo de símbolos.

    El siguiente comando crea una variable de entorno que almacena la ruta de acceso al directorio de archivos de símbolos:

    set _NT_SYMBOL_PATH=C:\Windows\symbols
    
  3. Inicie el Bloc de notas.

  4. Busque el identificador de proceso (PID) del proceso del Bloc de notas.

    Puedes encontrar el PID de cualquier proceso en ejecución desde task Manager o Tasklist (tasklist.exe), una herramienta incluida en los sistemas operativos Windows XP Professional y Windows Server 2003. En este ejemplo, el PID del Bloc de notas es 1228.

  5. Ejecute UMDH.

    El siguiente comando ejecuta UMDH (umdh.exe). Usa el parámetro -p: para especificar el PID que, en este ejemplo, es 1228. Usa el parámetro /f: para especificar el nombre y la ubicación del archivo de salida para el volcado de montón, bloc de notas.dmp.

    umdh -p:1228 -f:notepad.dmp 
    

    En respuesta, UMDH escribe un volcado completo de todos los montones activos en el archivo notepad.dmp.