Select the product you need help with
Cómo utilizar pageheap.exe en Windows XP, Windows 2000 y Windows Server 2003Id. de artículo: 286470 - Ver los productos a los que se aplica este artículo En esta páginaResumenEn este artículo describe cómo utilizar el montón de página herramienta (pageheap.exe) en Microsoft Windows XP, Microsoft Windows 2000 y Microsoft Windows Server 2003. Más informaciónPageheap.exe establece indicadores de montón de páginas que ayudan a buscar daños relacionados con el montón. También puede ayudar a detectar pérdidas en programas que se ejecutan en Windows 2000 Professional Service Pack 2 (SP2) y los sistemas Windows XP Professional. Pageheap.exe introduce una capa de validación de software (Administrador de pila de página) entre la aplicación y el sistema que comprueba todas las operaciones de memoria dinámica (las asignaciones, libera y otras operaciones de montón). Cuando se habilita el Administrador de pila de página, la aplicación que se está probando, a continuación, se inicia en un depurador. Si se encuentra un problema, provocará una interrupción del depurador. importante Pageheap.exe no especifica el error está, sino bloqueará el sistema cuando se encuentra un problema. Permite una capa de comprobación que ya existe en las bibliotecas de sistema de Ntdll.dll en SP2 de Windows 2000 Professional y Windows XP Professional. Pageheap.exe no funcionará en versiones anteriores de Microsoft Windows. Si la aplicación que se está probando no se inicia bajo un depurador y se encuentra un error, se bloqueará sólo sin sus comentarios. ConceptosUn problema común en el desarrollo de aplicaciones es el montón está dañado. Esto suele ocurrir cuando una aplicación asigna un bloque de memoria de montón de un tamaño determinado y, a continuación, se escribe en direcciones de memoria más allá del tamaño solicitado del bloque del montón. Daños en el montón también pueden producirse cuando una aplicación escribe bloque de memoria que ya se ha liberado.Dos conceptos son fundamentales para comprender los comandos relacionados con pageheap.exe y la forma de utilizar:
Ubicación de la herramienta de PageHeap de descargaPara descargar el paquete de herramientas de depuración más reciente, haga clic en el vínculo siguiente:http://www.microsoft.com/whdc/devtools/debugging/default.mspx
(http://www.microsoft.com/whdc/devtools/debugging/default.mspx)
Seleccione la última versión de las herramientas de depuración. Cuando instala las herramientas, seleccione la instalación personalizada y, a continuación, instalar en un directorio con un nombre apropiado. Por ejemplo, instalar herramientas de C:\Debug o C:\Debugtools. Elegir un método de Investigate Heap Block CorruptionsLa mayoría de los daños en bloques del montón se puede descubrir de dos maneras:
Montón full-PageMontones de página completa deben estar habilitada para procesos individuales, o parámetros limitados para los procesos grandes, debido a de sus requisitos de memoria alta. No se puede habilitar todo el sistema, porque es difícil evaluar el tamaño de archivo de página necesarios. Utilizando un archivo de página que es demasiado pequeño con el montón de página completa de todo el sistema procesa el sistema de reinicio.La ventaja de montones de página completa es la que hace que un proceso acceso infringen (va) exactamente en el punto de error. Esto facilita el error de depuración. Para poder detectar errores, utilice primero el montón de página normal para determinar el rango donde falla un proceso y, a continuación, utilizar montones de página completa en procesos individuales a gran escala para esa clase restringida de asignaciones (es decir, un intervalo de tamaño específico o una biblioteca específica). Pila de página normalMontón de página normal puede utilizarse para las pruebas de procesos a gran escala sin el consumo de memoria alta ese montón completa requiere. Sin embargo, el montón de página normal retrasa detección hasta que se liberan bloques, así lo hace errores más difícil de depurar.En general, utilice el montón de página normal para procesos iniciales a gran escala pruebas. A continuación, si se detectan problemas, habilite montón completa para una clase restringida de las asignaciones en los procesos. Montón de página normal puede ser habilitada de forma segura de todo el sistema para todos los procesos. Esto es muy útil en bancos de pruebas que realizan la validación general del sistema en lugar de pruebas de componente centrado. Montón de página normal también puede habilitarse para un único proceso. Con GFlags montones de página del sistemaSe utiliza la herramienta GFlags para habilitar el montón de la página de todo el sistema. Para un comando GFlags surta efecto, debe reiniciar el equipo después de emitir el comando.Para habilitar el montón de página normal de todo el sistema:
Utilizar GFlags con un montón de página de proceso únicoPuede habilitar el montón de páginas supervisar un proceso específico. Para ello, siga estos pasos:
Asignaciones UnalignedLos administradores del montón de Windows (todas las versiones) siempre han garantizado que las asignaciones de montón tengan una dirección de inicio que es de 8 bytes alineado (en plataformas de 64 bits, la alineación es 16 bytes). El administrador del montón página hace que la garantía misma. Esto es imposible, sin embargo, si desea tener la final-de-la-asignación exactamente al final de una página. Es necesaria la asignación de página final exacta para que un error de cierre-por-un byte escribirá desencadenar una lectura o en la página no accesible y provocar un error de inmediato.Si el tamaño de usuario solicitado para el bloque es no 8 bytes alineado, montón de página no puede cumplir tanto el "comienzo dirección 8 bytes alineado" y las restricciones "alineada la página de la dirección final". La solución es cumplir la primera restricción y realizar el inicio del bloque de 8 bytes alineado. Utilizar una trama de relleno pequeña entre el final del bloque y el comienzo de la página no accesible. Este patrón de relleno puede ser de 0 bytes a través de 7 bytes de longitud en arquitecturas de 32 bits. La trama de relleno se comprueba al libre. Si detección de errores inmediata es necesaria para estas asignaciones que de lo contrario tendrá una trama de relleno al final, compruebe el administrador del montón de página omitir la regla de alineación de 8 bytes y siempre alinear el final de la asignación de un límite de página mediante los parámetros / unaligned y / completo . Para obtener más información, consulte el parámetro / unaligned . Nota : algunos programas realizar suposiciones sobre alineación de 8 bytes y dejan de funcionar correctamente con el parámetro / unaligned . Microsoft Internet Explorer es un dicho programa. Páginas sin confirmar para asignaciones de montón Full-PageLa implementación de montones de página completa principal confirma dos páginas para cualquier asignación de menor a una página. Una página se utiliza para la asignación de usuario y la otra es hacer no accesible al final del búfer.Se pueden detectar saturaciones del final del búfer mediante una zona de espacio virtual reservado, en lugar de una página confirmada no accesible. Excepción de infracción de acceso se produce cuando el proceso toca ese espacio virtual reservado. Este enfoque puede reducir el consumo de memoria hasta un 50 por ciento. Para obtener más información, consulte el parámetro / decommit . Inserción de erroresPuede controlar el administrador del montón de página para que algunas asignaciones se error deliberadamente. Esto es útil en simular condiciones de memoria baja sin utilizar realmente todos los recursos del sistema.Especifique un número comprendido entre 1 y 10.000 para representar la probabilidad de que una asignación se producirá un error. El uso de una probabilidad de 10.000 garantiza que el 100 por ciento de las asignaciones fallará. Una probabilidad de 2.000 especifica que se conmutará aproximadamente el 20 por ciento de las asignaciones. El administrador del montón página toma especial cuidado para evitar la inserción de errores en ambos los primeros segundos 5 de vida del proceso y Windows NT rutas de acceso de cargador de código (para exampole, LoadLibrary, FreeLibrary). Si no es suficiente para permitir que el proceso de completar el inicio 5 segundos, puede especificar un tiempo de espera más al principio del proceso. Para obtener más información, consulte el parámetro / errores . Cuando utiliza el parámetro / errores y el proceso que se está probando tiene un error, se producirá una excepción. Generalmente, la razón es que la operación de asignación devuelve un valor NULL, y posteriormente la aplicación intenta tener acceso a la memoria asignada. Sin embargo, porque la asignación no se puede tener acceso a la memoria y, por lo tanto, se produce una infracción de acceso. El otro motivo por el que se produce una excepción es que la aplicación intenta tratar el error de asignación, pero no libera algunos recursos. Esto se manifiesta como una pérdida de memoria y se es más difícil de depurar. Para ayudar a diagnosticar estos errores, el administrador del montón página mantiene un historial de seguimientos de la pila desde el momento de la inserción de errores. Estas trazas se pueden mostrar con el siguiente comando del depurador: ! montón [NUMBER OF TRAZAS] -p -f De manera predeterminada la extensión mostrará sólo los últimos cuatro seguimientos. Asociar automáticamente un depurador cuando se inicia la aplicaciónAlgunas aplicaciones son difíciles de iniciar desde un símbolo del sistema o se generan desde otros procesos. Para estas aplicaciones, especificar que, siempre que se inician, un depurador se asociará automáticamente a ellos. Esto es útil si el montón de páginas está habilitado para que se producen errores de proceso y el montón. Para obtener más información, consulte el parámetro / debug .Pageheap.exe es eficaz cuando se utiliza para comprobar cualquier proceso de asignación de memoria, incluido el estilo de C++ asignaciones nuevas y eliminar, siempre que las funciones de asignación y liberación personalizado llaman a finalmente en NT montón interfaces de administración (es decir, RtlAllocateHeap, RtlFreeHeap). Se garantiza que las siguientes funciones de hacerlo:
Evite utilizar la vinculación estática. Algunas aplicaciones han sido vinculadas estáticamente a antiguas versiones de C runtime. Estas versiones anteriores no llame a montón de Windows API y pageheap.exe no puede utilizarse para comprobar estas asignaciones. Vinculación dinámica garantiza que la biblioteca de tiempo de ejecución de C (msvcrt.dll) más reciente. Clases de errores encontrados por pageheap.exePageheap.exe detecta la mayoría de los errores de relacionados con el montón; sin embargo, es centrado en problemas de daños del montón y no se centra en pérdidas. Pageheap.exe ha limitado el éxito con buscar pérdidas de montón, aunque tiene funcionalidad de este destino.Una de las ventajas de pageheap.exe es que muchos errores se detectan cuando se producen. Por ejemplo, un error de cierre-por-un byte al final de un búfer asignado dinámicamente puede provocar una infracción de acceso instantáneo. Hay algunos tipos de errores que no puede detectar cuando se producen. En esos casos, el informe de errores se retrasa hasta que se libera el bloque.
Contraer esta tabla
Depuración de errores de pila de páginaPara obtener más información acerca de errores de pila de página de depuración, consulte Referencia de Tookit de compatibilidad de aplicaciones disponible dentro de Application Compatibility Toolkit.Para la sintaxis de pageheap.exe y ejemplos del uso de pageheap.exe, consulte Referencia de Tookit de compatibilidad de aplicaciones disponible dentro de la compatibilidad de aplicaciones Toolkit. Para obtener información adicional consulte el siguiente artículo de Knowledge Base: 294895
(http://support.microsoft.com/kb/294895/
)
Cómo obtener el Kit de herramientas de compatibilidad de aplicaciones de Windows PropiedadesId. de artículo: 286470 - Última revisión: miércoles, 14 de enero de 2009 - Versión: 6.0 La información de este artículo se refiere a:
Traducción automática IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente. Haga clic aquí para ver el artículo original (en inglés): 286470
(http://support.microsoft.com/kb/286470/en-us/
)
| Seleccione idioma
|




Volver al principio








