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)