Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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