Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Beskrivning
TTD-minne är en metod som tar parametrarna beginAddress, endAddress och dataAccessMask och returnerar en samling minnesobjekt som innehåller information om minnesåtkomst.
Parameterar
| Fastighet | Beskrivning |
|---|---|
| startadress | Startadressen för minnesobjektet föregås av 0x. |
| endAdress | Slutadressen för minnesobjektet föregås av 0x. |
| dataAccessMask | Dataåtkomstmasken som finns inom dubbla citattecken. Detta kan vara "r" för läsa, "w" för skriva, "e" för utföra och "c" för ändra. |
Barn
| Objekt | Beskrivning |
|---|---|
| Evenemangstyp | Typ av händelse. Det här är "MemoryAccess" för alla TTD.Memory-objekt. |
| ThreadId | Operativsystemets tråd-ID för tråden som gjorde begäran. |
| UniqueThreadId | Ett unikt ID för tråden i spårningen. Vanliga tråd-ID:t kan återanvändas under en processs livslängd, men det kan inte UniqueThreadIds. |
| TimeStart | Ett positionsobjekt som beskriver positionen när minnesåtkomst gjordes. |
| TidSlut | Ett positionsobjekt som beskriver positionen när minnesåtkomst gjordes. Detta kommer alltid att vara samma som TimeStart för TTD-minnesobjekt. |
| Åtkomsttyp | Åtkomsttypen – Läsa, skriva eller köra. |
| (IP) | Instruktionspekaren för koden som gjorde minnesåtkomsten. |
| Adress | Adressen som lästes, skrevs till eller kördes och ligger inom intervallet [beginAddress, endAddress) från parametrarna till .Memory(). Observera att intervallet är halvöppet. Ingen av de returnerade händelserna har alltså en adress som matchar endAddress, men det kan finnas händelser som matchar endAddress – 1. |
| Storlek | Storleken på läs/skriv/kör i byte. Detta är vanligtvis 8 byte eller mindre. När kod körs är det antalet byte i instruktionen som exekverades. |
| Värde | Värdet som lästes, skrevs eller verkställdes. Vid körning innehåller den kodbyte för instruktionen. Observera att instruktionsbytena visas i MSB-ordning av disassemblern men lagras som värde i LSB-ordning. |
Anmärkningar
Följande åtkomsttyper tillåts i TTD.Memory-frågor:
- r – läs
- w – Skriva
- rw – läsa/skriva
- e – exekvera
- rwe – läsa/skriva/exekvera
- ec – kör /ändra
Observera att det här är en funktion som gör beräkningar, så det tar en stund att köra.
Exempel på användning
Det här exemplet visar en rutnätsvisning av alla positioner i spårningen där de fyra byte minne som började vid 0x00a4fca0 lästes. Klicka på en post för att öka detaljnivån för varje förekomst av minnesåtkomst.
dx -g @$cursession.TTD.Memory(0x00a4fca0,0x00a4fca4, "r")
Du kan klicka på fälten TimeStart i någon av händelserna i rutnätsvisningen för att visa information om händelsen.
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
Om du vill flytta till positionen i spårningen som händelsen inträffade klickar du på [Tidsresa].
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
I det här exemplet visas alla positioner i spårningen där de fyra byte minne som börjar vid 0x1bf7d0 lästes/skrevs. Klicka på en post för att gå in på detaljer om varje förekomst av minnesåtkomst.
0:000> dx @$cursession.TTD.Memory(0x1bf7d0,0x1bf7d4, "rw")
@$cursession.TTD.Memory(0x1bf7d0,0x1bf7d4, "rw")
[0x0]
[0x1]
[0x2]
[0x3]
...
I det här exemplet visas alla positioner i spårningen där de fyra byte minne som börjar vid 0x13a1710 kördes/ändrades. Klicka på en förekomst för att öka detaljnivån för ytterligare information om varje förekomst av minnesåtkomst.
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
Se även
Felsökning av tidsresor – Introduktion till felsökningsobjekt för tidsresor
Felsökning av tidsresande – Översikt