Objekty haldy TTD

Popis

Objekty haldy TTD slouží k poskytnutí informací o volání haldy, ke kterým dochází v průběhu trasování.

Vlastnosti

Každý objekt haldy bude mít tyto vlastnosti.

Vlastnictví Popis
Činnost Popisuje akci, ke které došlo. Možné hodnoty jsou: Alloc, ReAlloc, Free, Create, Protect, Lock, Unlock, Destroy.
Halda Popisovač haldy Win32.

Podmíněné vlastnosti

Podle objektu haldy může mít některé z níže uvedených vlastností.

Vlastnictví Popis
Adresa Adresa přiděleného objektu.
Předchozí adresa Adresa přiděleného objektu před jeho realokací. Pokud adresa není stejná jako PreviousAddress, pak realokace paměti způsobila přemístění paměti.
Velikost Velikost nebo požadovaná velikost přiděleného objektu.
BaseAddress Adresa přiděleného objektu v haldě. Může představovat adresu, která bude uvolněna (Free), nebo adresu objektu před jeho znovu přidělením (ReAlloc).
Vlajky Význam závisí na rozhraní API.
Výsledek Výsledek volání rozhraní API pro haldu Nenulový znamená úspěch a nula znamená selhání.
ReserveSize Množství paměti, které má být vyhrazeno pro haldu.
CommitSize Počáteční potvrzená velikost haldy
MakeReadOnly Nenulová hodnota označuje požadavek, aby haldu byla určena jen pro čtení; Nulová hodnota označuje, že halda by měla být pro čtení i zápis.

Children

Objekt Popis
Čas začátku Objekt pozice, který popisuje pozici na začátku přidělení.
KonecČasu Objekt pozice, který popisuje pozici na konci přidělení.

Příklad použití

Pomocí tohoto příkazu dx (Display Debugger Object Model Expression) zobrazte paměť haldy v mřížce pomocí možnosti -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     -        -                 =

Výstup lze popsat jako normalizovaná data, protože existuje vybraná sada API, která zajišťují operace s haldou. Data extrahovaná z příslušných parametrů se zobrazují jednotným způsobem.

Kliknutím na TimeStart nebo TimeEnd přejdete na tento bod v trasování.

Kliknutím na pole parametrů vedle konkrétní položky zobrazíte dostupné informace o parametrech.

dx -r1 @$cursession.TTD.Data.Heap()[2].@"Parameters"
@$cursession.TTD.Data.Heap()[2].@"Parameters"                
    [0x0]            : 0x16c7d780000
    [0x1]            : 0x280000
    [0x2]            : 0x20
    [0x3]            : 0x0
...    

Pokud chcete zobrazit další informace, zvyšte rekurzivní -r hodnotu.

Viz také

Ladění cestováním časem – úvod k objektům pro ladění časového cestování

Ladění časové – přehled

dx (zobrazení výrazu objektového modelu ladicího programu)