Объекты кучи 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
См. также:
Отладка перемещения по времени — общие сведения об объектах отладки перемещения по времени
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по