Share via


GFlags y PageHeap

Esta versión de GFlags incluye la funcionalidad de PageHeap (pageheap.exe), una herramienta que permite la supervisión de la asignación del montón en Windows. PageHeap permite que las características de Windows que reserven memoria en el límite de cada asignación detecten intentos de acceder a la memoria más allá de la asignación.

Las opciones del montón de páginas de GFlags permiten seleccionar la comprobación del montón estándar, que escribe patrones de relleno al final de cada asignación de montón y examina los patrones cuando se liberan las asignaciones o la comprobación del montón de página completa, lo que coloca una página inaccesible al final de cada asignación para que el programa se detenga inmediatamente si accede a la memoria más allá de la asignación. Dado que la comprobación de montón completa usa una página completa de memoria para cada asignación, su uso generalizado puede provocar escasez de memoria del sistema.

  • Para habilitar la comprobación del montón de páginas estándar para todos los procesos, use gflags /r +hpa o gflags /k +hpa.

  • Para habilitar la comprobación del montón de páginas estándar para un proceso, use gflags /p /enableImageFileName.

  • Para habilitar la comprobación del montón de página completa para un proceso, use gflags /iImageFileName+hpa o gflags /p /enableImageFileName/full.

Toda la configuración del montón de páginas, excepto /k, se almacenan en el registro y permanecen vigentes hasta que las cambie.

Tenga en cuenta que la funcionalidad PageHeap solo está activa si la comprobación de PageHeap se ha habilitado antes de iniciar la imagen. Para procesos de larga duración, como W3WP para IIS en un entorno de producción, esto significa que la comprobación no comenzará hasta que se haya reiniciado el proceso. Del mismo modo, si PageHeap está deshabilitado mientras se ejecuta el proceso, la comprobación continuará hasta que se reinicie el proceso. Emitir el mismo comando GFlags repetidamente, mientras el proceso se está ejecutando o no, no tiene ningún efecto adicional. Como consecuencia de esto, habilitar PageHeap mediante el comando GFlags es idempotent.

Las configuraciones de PageHeap también son persistentes entre las finalizaciones del proceso y los reinicios del sistema. Los reinicios del sistema se pueden usar para volver a inicializar un proceso una vez configuradas las opciones de PageHeap deseadas, pero no se pueden usar para deshabilitar la funcionalidad una vez habilitada. La deshabilitación de PageHeap debe realizarse explícitamente.

Use cuidado al interpretar la casilla Habilitar montón de páginas para un archivo de imagen en el cuadro de diálogo GFlags. Indica que la comprobación del montón de páginas está habilitada para un archivo de imagen, pero no indica si está completa o la comprobación del montón de páginas estándar. Si los resultados de la comprobación activan la casilla, la comprobación del montón de página completa está habilitada para el archivo de imagen. Sin embargo, si los resultados de la comprobación del uso de la interfaz de la línea de comandos, la comprobación puede representar la habilitación de la comprobación del montón de páginas completa o estándar para el archivo de imagen.

Para determinar si la comprobación del montón de páginas completa o estándar está habilitada para un programa, en la línea de comandos, escriba gflags /p. En la pantalla resultante, los seguimientos indican que la comprobación del montón de páginas estándar está habilitada para el programa y los seguimientos completos indican que la comprobación del montón de página completa está habilitada para el programa.