Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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í