TTD ヒープ オブジェクト
説明
TTD ヒープ オブジェクトは、トレースの過程で発生するヒープ呼び出しに関する情報を提供するために使用されます。
プロパティ
すべてのヒープ オブジェクトに、次のプロパティがあります。
プロパティ | 説明 |
---|---|
アクション | 発生したアクションを表します。 指定できる値は、Alloc、ReAlloc、Free、Create、Protect、Lock、Unlock、Destroy です。 |
ヒープ | Win32 ヒープのハンドル。 |
条件付きプロパティ
ヒープ オブジェクトによっては、以下のプロパティの一部が含まれる場合があります。
プロパティ | 説明 |
---|---|
番地 | 割り当てられたオブジェクトのアドレス。 |
PreviousAddress | 割り当てられたオブジェクトが再割り当てされる前のアドレス。 Address が PreviousAddress と同じでない場合、再割り当てによってメモリが移動したことになります。 |
サイズ | 割り当てられたオブジェクトのサイズまたは要求されたサイズ。 |
BaseAddress | ヒープ内に割り当てられたオブジェクトのアドレス。 解放されるアドレス (Free) または再割り当て前のオブジェクトのアドレス (ReAlloc) を表すことができます。 |
Flags | 意味は API によって異なります。 |
結果 | ヒープ API 呼び出しの結果。 0 以外は成功を意味し、ゼロは失敗を意味します。 |
ReserveSize | ヒープ用に予約するメモリの量。 |
CommitSize | ヒープの初期コミット サイズ。 |
MakeReadOnly | 0 以外の値は、ヒープを読み取り専用にする要求を示します。0 の値は、ヒープを読み取り/書き込み可能にすることを示します。 |
子
Object | 説明 |
---|---|
TimeStart | 割り当ての開始時の位置を表す位置オブジェクト。 |
TimeEnd | 割り当ての終了時の位置を表す位置オブジェクト。 |
使用例
この dx (Display Debugger Object Model Expression) コマンドを使用して、-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 値を大きくすると、追加情報が表示されます。