Compartir a través de


Objetos de montón TTD

Descripción

Los objetos TTD Heap se usan para proporcionar información sobre las llamadas de montón que se producen durante el transcurso de un seguimiento.

Propiedades

Cada objeto de montón tendrá estas propiedades.

Propiedad Descripción
Acción Describe la acción que se produjo. Los valores posibles son: Alloc, ReAlloc, Free, Create, Protect, Lock, Unlock, Destroy.
Montón Identificador del montón win32.

Propiedades condicionales

Dependiendo del objeto del montón, puede tener algunas de las propiedades siguientes.

Propiedad Descripción
Dirección Dirección del objeto asignado.
PreviousAddress Dirección del objeto asignado antes de que se haya reasignado. Si Address no es igual que PreviousAddress, la reasignación provocó que la memoria se mueva.
Size Tamaño o tamaño solicitado de un objeto asignado.
BaseAddress Dirección de un objeto asignado en el montón. Puede representar la dirección que se liberará (Gratis) o la dirección del objeto antes de reasignarla (ReAlloc).
Flags El significado depende de la API.
Resultado Resultado de la llamada API del montón. Un valor distinto de cero significa éxito y cero significa error.
ReserveSize Cantidad de memoria que se va a reservar para el montón.
CommitSize Tamaño inicial confirmado para el montón.
MakeReadOnly Un valor distinto de cero indica una solicitud para realizar el montón de solo lectura; Un valor cero indica que el montón debe ser de lectura y escritura.

Children

Object Descripción
TimeStart Objeto position que describe la posición al principio de la asignación.
TimeEnd Objeto position que describe la posición al final de la asignación.

Uso de ejemplo

Use este comando dx (Display Debugger Object Model Expression) para mostrar la memoria del montón en una cuadrícula mediante la opción -g.

0:0:000> dx -g @$cursession.TTD.Data.Heap()
=======================================================================================================================================================
=                          = Action     = Heap          = Address       = Size      = Flags  = (+) TimeStart = (+) TimeEnd = Result = PreviousAddress =
=======================================================================================================================================================
= [0x0] : [object Object]  - Alloc      - 0xaf0000      - 0xb0cfd0      - 0x4c      - 0x0    - FAB:17B1      - FAD:40      -        -                 =
= [0x1] : [object Object]  - Alloc      - 0xaf0000      - 0xb07210      - 0x34      - 0x8    - FB1:9         - FB3:74      -        -                 =
= [0x2] : [object Object]  - Alloc      - 0xaf0000      - 0xb256d8      - 0x3c      - 0x8    - E525:174      - E526:E1     -        -                 =

La salida se puede describir como "datos normalizados" porque hay un conjunto elegido de API que representan operaciones de montón. Los datos extraídos de los parámetros adecuados se presentan de forma uniforme.

Al hacer clic en TimeStart o TimeEnd, se le desplazará hasta ese punto del seguimiento.

Haga clic en el campo parámetros situado junto a una entrada específica para mostrar la información de parámetros disponible.

dx -r1 @$cursession.TTD.Data.Heap()[2].@"Parameters"
@$cursession.TTD.Data.Heap()[2].@"Parameters"                
    [0x0]            : 0x16c7d780000
    [0x1]            : 0x280000
    [0x2]            : 0x20
    [0x3]            : 0x0
...    

Aumente el valor de recursividad -r para mostrar información adicional.

Consulte también

Depuración de viajes en el tiempo - Introducción a los objetos de depuración de viajes en el tiempo

Depuración de viajes en el tiempo - Información general

dx (Mostrar la expresión del modelo de objeto del depurador)