Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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, чтобы отобразить дополнительные сведения.
См. также
Отладка временных путешествий — введение в объекты отладки временных путешествий