Объекты кучи TTD

Описание

Объекты кучи TTD используются для предоставления сведений о вызовах кучи, происходящих в ходе трассировки.

Свойства

Каждый объект кучи будет иметь эти свойства.

Свойство Описание
Действие Описывает действие, которое произошло. Возможные значения: Alloc, ReAlloc, Free, Create, Protect, Lock, Unlock, Destroy.
Куча Дескриптор для кучи Win32.

Условные свойства

В зависимости от объекта кучи он может иметь некоторые свойства ниже.

Свойство Описание
Адрес Адрес выделенного объекта.
PreviousAddress Адрес выделенного объекта до его перераспределения. Если значение Address отличается от PreviousAddress, то перераспределение привело к перемещению памяти.
Размер Размер и (или) запрошенный размер выделенного объекта.
BaseAddress Адрес выделенного объекта в куче. Он может представлять адрес, который будет освобожден (бесплатный) или адрес объекта перед его перераспределением (ReAlloc).
Флаги Значение зависит от API.
Результат Результат вызова API кучи. Ненулевое значение означает успех, а ноль означает неудачу.
ReserveSize Объем памяти для резервирования для кучи.
CommitSize Начальный зафиксированный размер для кучи.
MakeReadOnly Ненулевое значение указывает на запрос, чтобы сделать кучу доступной только для чтения; Нулевое значение указывает, что куча должна быть чтением и записью.

Дети

Объект Описание
TimeStart Объект position, описывающий позицию в начале выделения.
TimeEnd Объект position, описывающий позицию в конце выделения.

Example Usage (Пример использования)

Используйте эту команду dx, чтобы отобразить память кучи в сетке с помощью параметра -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     -        -                 =

Выходные данные можно описать как "нормализованные данные", так как существует выбранный набор API, представляющих операции кучи. Данные, извлеченные из соответствующих параметров, представлены единообразно.

Если щелкнуть TimeStart или TimeEnd, вы перейдете к этой точке трассировки.

Щелкните поле параметров рядом с определенной записью, чтобы отобразить доступные сведения о параметрах.

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

См. также:

Отладка перемещения по времени — общие сведения об объектах отладки перемещения по времени

Отладка по времени — обзор