Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Leírás
A TTD Memória egy metódus, amely a beginAddress, az endAddress és a dataAccessMask paramétereket veszi igénybe, és memóriaelérési adatokat tartalmazó memóriaobjektum-gyűjteményt ad vissza.
Paraméterek
| Ingatlan | Leírás |
|---|---|
| kezdőCím | A memóriaobjektum 0x előtaggal ellátott első címe. |
| endAddress | A 0x előtagú memóriaobjektum zárócíme. |
| dataAccessMask | A dupla idézőjelekben található adatelérési maszk. Ez lehet r az olvasáshoz, a w íráshoz, az e a végrehajtáshoz és a c a módosításhoz. |
Gyermekek
| Objektum | Leírás |
|---|---|
| Eseménytípus | Az esemény típusa. Ez a "MemoryAccess" az összes TTD.Memory objektumhoz. |
| Szálazonosító | A kérést küldő szál operációsrendszer-szálazonosítója. |
| UniqueThreadId | A nyomkövetési szál egyedi azonosítója. A normál szálazonosítók egy folyamat élettartama alatt újra felhasználhatók, de a UniqueThreadIds nem. |
| TimeStart | A memóriahozzáférés helyét leíró pozícióobjektum . |
| IdőVége | A memóriahozzáférés helyét leíró pozícióobjektum . Ez mindig ugyanaz lesz, mint a TTD.Memory objektumok TimeStart értéke. |
| Hozzáférési típus | A hozzáférési típus – Olvasás, Írás vagy Végrehajtás. |
| IP | A memóriahozzáférést biztosító kód utasításmutatója. |
| Cím | A cím, amelyet beolvasnak, megírnak vagy végrehajtanak, majd a [beginAddress, endAddress) tartományba kerül a paraméterek alapján a Memory() művelet során. Vegye figyelembe, hogy az intervallum félig nyitott. Ez azt jelzi, hogy egyik visszaadott eseménynek sem lesz címe egyező endAddress címmel, de lehetnek olyan események, amelyek megfelelnek az endAddress – 1 címnek. |
| Méret | Az olvasási/írási/végrehajtási műveletek mérete bájtban. Ez általában 8 bájt vagy kevesebb lesz. Kódvégrehajtás esetén a végrehajtott utasítás bájtjainak száma. |
| Érték | Az olvasott, írott vagy végrehajtott érték. Végrehajtás esetén az utasítás kódbájtját tartalmazza. Vegye figyelembe, hogy az utasítási bájtok MSB sorrendben vannak felsorolva a szétszerelő által, de LSB sorrendben lesznek tárolva. |
Megjegyzések
A TTD-ben a következő hozzáférési típusok engedélyezettek. Memória-lekérdezések:
- r - olvasás
- w - írás
- rw - olvasás/ írás
- e - végrehajt
- rwe - olvasás / írás / végrehajtás
- ec - végrehajtás /módosítás
Vegye figyelembe, hogy ez a függvény számítást végez, ezért egy ideig tart a futtatás.
Használati példa
Ez a példa a nyomkövetésben lévő összes pozíció rácsos megjelenítését mutatja be, ahol a 0x00a4fca0 kezdődő négy bájtnyi memória olvasási hozzáférése történt. Kattintson bármelyik bejegyzésre a memóriahozzáférés minden előfordulásának részletezéséhez.
dx -g @$cursession.TTD.Memory(0x00a4fca0,0x00a4fca4, "r")
A rács bármelyik eseményének TimeStart mezőjére kattintva megjelenítheti az adott esemény adatait.
0:000> dx -r1 @$cursession.TTD.Memory(0x00a4fca0,0x00a4fca4, "r")[16].TimeStart
@$cursession.TTD.Memory(0x00a4fca0,0x00a4fca4, "r")[16].TimeStart : 5D:113 [Time Travel]
Sequence : 0x5d
Steps : 0x113
Ha az esemény nyomkövetési pozíciójára szeretne lépni, kattintson a [Time Travel] elemre.
0:000> dx @$cursession.TTD.Memory(0x00a4fca0,0x00a4fca4, "r")[16].TimeStart.SeekTo()
@$cursession.TTD.Memory(0x00a4fca0,0x00a4fca4, "r")[16].TimeStart.SeekTo()
(27b8.3168): Break instruction exception - code 80000003 (first/second chance not available)
Time Travel Position: 5D:113
eax=0000004c ebx=00dd0000 ecx=00a4f89c edx=00a4f85c esi=00a4f89c edi=00b61046
eip=690795e5 esp=00a4f808 ebp=00a4f818 iopl=0 nv up ei pl nz na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000206
690795e5 ffb604040000 push dword ptr [esi+404h] ds:002b:00a4fca0=00000000
Ebben a példában az összes olyan pozíció szerepel a nyomkövetésben, ahol a 0x1bf7d0 időponttól kezdődő négy bájtnyi memória olvasási/írási hozzáféréssel rendelkezik. Kattintson bármelyik bejegyzésre a memóriahozzáférés minden előfordulásának részletezéséhez.
0:000> dx @$cursession.TTD.Memory(0x1bf7d0,0x1bf7d4, "rw")
@$cursession.TTD.Memory(0x1bf7d0,0x1bf7d4, "rw")
[0x0]
[0x1]
[0x2]
[0x3]
...
Ebben a példában az összes olyan pozíció szerepel a nyomkövetésben, ahol a 0x13a1710 időponttól kezdődő négy bájtnyi memória végrehajtásra/módosításra került. A memóriahozzáférés bármelyik előfordulásához kapcsolódó további információkért kattintson bármelyik előfordulásra.
0:000> dx -r1 @$cursession.TTD.Memory(0x13a1710,0x13a1714, "ec")[0]
@$cursession.TTD.Memory(0x13a1710,0x13a1714, "ec")[0]
EventType : MemoryAccess
ThreadId : 0x1278
UniqueThreadId : 0x2
TimeStart : 5B:4D [Time Travel]
TimeEnd : 5B:4D [Time Travel]
AccessType : Execute
IP : 0x13a1710
Address : 0x13a1710
Size : 0x1
Value : 0x55
Lásd még:
Time Travel Hibakeresés – Bevezetés a Time Travel hibakeresési objektumaiba