Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Opis
Obiekty TTD sterty służą do przekazywania informacji o wywołaniach związanych ze stertą, które występują w trakcie śledzenia.
Właściwości
Każdy obiekt na stercie będzie miał te właściwości.
| Majątek | Opis |
|---|---|
| Akcja | Opisuje akcję, która wystąpiła. Możliwe wartości to: Alloc, ReAlloc, Free, Create, Protect, Lock, Unlock, Destroy. |
| Kopiec | Uchwyt stosu Win32. |
Właściwości warunkowe
W zależności od obiektu sterty może mieć niektóre z poniższych właściwości.
| Majątek | Opis |
|---|---|
| Adres | Adres przydzielonego obiektu. |
| PoprzedniAdres | Adres przydzielonego obiektu przed jego ponownym przydzieleniem. Jeśli adres nie jest taki sam jak PreviousAddress, to realokacja spowodowała przeniesienie pamięci. |
| Rozmiar | Rozmiar i/lub żądany rozmiar przydzielonego obiektu. |
| BaseAddress | Adres przydzielonego obiektu w stercie. Może on reprezentować adres, który zostanie uwolniony (wersja Bezpłatna) lub adres obiektu przed jego ponownym przydziałem (ReAlloc). |
| Flagi | Znaczenie zależy od interfejsu API. |
| Wynik | Wynik wywołania interfejsu API sterta. Wartość niezerowa oznacza powodzenie i zero oznacza niepowodzenie. |
| Rozmiar rezerwy | Ilość pamięci do zarezerwowania dla sterta. |
| CommitSize | Początkowy zatwierdzony rozmiar sterty. |
| MakeReadOnly | Wartość niezerowa wskazuje żądanie, aby kopiec był tylko do odczytu; Wartość zero wskazuje, że kopiec powinien być odczyt-zapis. |
Dzieci
| Przedmiot | Opis |
|---|---|
| Godzina rozpoczęcia | Obiekt położenia, który opisuje położenie na początku alokacji. |
| KoniecCzasu | Obiekt położenia opisujący położenie na końcu alokacji. |
Przykładowe użycie
Użyj tego polecenia dx (Wyświetl wyrażenie modelu obiektu debugera), aby przedstawić pamięć sterty w formie siatki przy użyciu opcji -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 - - =
Dane wyjściowe można opisać jako "znormalizowane dane", ponieważ istnieje wybrany zestaw interfejsów API, które reprezentują operacje stosu. Dane wyodrębnione z odpowiednich parametrów są prezentowane w jednolity sposób.
Kliknięcie TimeStart lub TimeEnd spowoduje przejście do tego miejsca w ścieżce.
Kliknij pole parametrów obok określonego wpisu, aby wyświetlić dostępne informacje o parametrach.
dx -r1 @$cursession.TTD.Data.Heap()[2].@"Parameters"
@$cursession.TTD.Data.Heap()[2].@"Parameters"
[0x0] : 0x16c7d780000
[0x1] : 0x280000
[0x2] : 0x20
[0x3] : 0x0
...
Zwiększ wartość rekursji -r, aby wyświetlić dodatkowe informacje.
Zobacz też
Debugowanie podróży w czasie – wprowadzenie do obiektów związanych z debugowaniem podróży w czasie
Debugowanie podróży w czasie — omówienie