TTD ヒープ オブジェクト

説明

TTD ヒープ オブジェクトは、トレースの過程で発生するヒープ呼び出しに関する情報を提供するために使用されます。

プロパティ

すべてのヒープ オブジェクトに、次のプロパティがあります。

プロパティ 説明
アクション 発生したアクションを表します。 指定できる値は、Alloc、ReAlloc、Free、Create、Protect、Lock、Unlock、Destroy です。
ヒープ Win32 ヒープのハンドル。

条件付きプロパティ

ヒープ オブジェクトによっては、以下のプロパティの一部が含まれる場合があります。

プロパティ 説明
番地 割り当てられたオブジェクトのアドレス。
PreviousAddress 割り当てられたオブジェクトが再割り当てされる前のアドレス。 アドレスが PreviousAddress と同じでない場合、再割り当てによってメモリが移動しています。
サイズ 割り当てられたオブジェクトのサイズまたは要求されたサイズ。
BaseAddress ヒープ内に割り当てられたオブジェクトのアドレス。 解放されるアドレス (Free) または再割り当て前のオブジェクトのアドレス (ReAlloc) を表すことができます。
Flags 意味は API によって異なります。
結果 ヒープ API 呼び出しの結果。 0 以外は成功を意味し、ゼロは失敗を意味します。
ReserveSize ヒープ用に予約するメモリの量。
CommitSize ヒープの初期コミット サイズ。
MakeReadOnly 0 以外の値は、ヒープを読み取り専用にする要求を示します。0 の値は、ヒープを読み取り/書き込み可能にすることを示します。

Object 説明
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

参照

Time Travel Debugging - Time Travel Debugging オブジェクトの概要

Time Travel Debugging - 概要