Бөлісу құралы:


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

Description

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

Свойства

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

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

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

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

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

Children

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

Пример использования

Используйте эту команду 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
...    

Увеличьте значение рекурсии -r, чтобы отобразить дополнительные сведения.

См. также

Отладка временных путешествий — введение в объекты отладки временных путешествий

Отладка временных путешествий — обзор

dx (выражение объектной модели отладчика)