Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Deskripsi
Memori TTD adalah metode yang mengambil parameter beginAddress, endAddress, dan dataAccessMask dan mengembalikan kumpulan objek memori yang berisi informasi akses memori.
Parameter-parameternya
| Harta benda | Deskripsi |
|---|---|
| beginAddress | Alamat awal objek memori diawali dengan 0x. |
| Alamat akhir | Alamat akhir objek memori diawali dengan 0x. |
| dataAccessMask | Masker akses data terletak dalam tanda kutip ganda. Ini bisa r untuk baca, w untuk tulis, e untuk eksekusi dan c untuk perubahan. |
Anak
| Objek | Deskripsi |
|---|---|
| Jenis Acara | Jenis peristiwa. Ini adalah "MemoryAccess" untuk semua objek memori TTD.Memory. |
| ThreadId | ID utas OS utas yang membuat permintaan. |
| UniqueThreadId | ID unik untuk utas di seluruh jejak. ID utas reguler dapat digunakan kembali selama masa pakai proses tetapi UniqueThreadIds tidak dapat digunakan kembali. |
| TimeStart | Objek posisi yang menjelaskan posisi ketika akses memori dibuat. |
| TimeEnd | Objek posisi yang menjelaskan posisi ketika akses memori dibuat. Ini akan selalu sama dengan TimeStart untuk objek memori TTD. |
| JenisAkses | Jenis akses - Baca, Tulis, atau Jalankan. |
| IP | Penunjuk instruksi dari kode yang melakukan akses memori. |
| Alamat | Alamat yang dibaca / ditulis ke / dijalankan dan akan berada dalam rentang [beginAddress, endAddress) dari parameter ke . Memori(). Perhatikan bahwa interval setengah terbuka. Artinya, tidak ada peristiwa yang dikembalikan yang akan memiliki alamat yang cocok dengan endAddress tetapi mungkin ada peristiwa yang cocok dengan endAddress – 1. |
| Ukuran | Ukuran baca/tulis/eksekusi dalam byte. Ini biasanya akan menjadi 8 byte atau kurang. Jika terjadi eksekusi kode, itu adalah jumlah byte dalam instruksi yang dijalankan. |
| Nilai | Nilai yang dibaca, ditulis, atau dijalankan. Dalam konteks eksekusi, ini berisi byte kode untuk instruksi tersebut. Perhatikan bahwa byte instruksi tercantum dalam urutan MSB oleh pembongkar tetapi akan disimpan dalam nilai dalam urutan LSB. |
Komentar
Jenis akses berikut diizinkan dalam kueri memori di TTD.
- r - baca
- w - tulis
- rw - baca/tulis
- e - jalankan
- rwe - baca / tulis / eksekusi
- ec - jalankan /ubah
Perhatikan bahwa ini adalah fungsi yang melakukan komputasi, sehingga perlu waktu cukup lama untuk dijalankan.
Contoh Penggunaan
Contoh ini menunjukkan tampilan kisi dari semua posisi dalam jejak di mana empat byte memori yang dimulai dari 0x00a4fca0 terjadi akses baca. Klik entri apa pun untuk menelusuri paling detail setiap kemunculan akses memori.
dx -g @$cursession.TTD.Memory(0x00a4fca0,0x00a4fca4, "r")
Anda dapat mengklik bidang TimeStart di salah satu peristiwa di tampilan kisi, untuk menampilkan informasi untuk peristiwa tersebut.
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
Untuk berpindah ke posisi di jejak peristiwa yang terjadi, klik [Perjalanan Waktu].
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
Dalam contoh ini, semua posisi pada jejak di mana empat byte memori yang dimulai pada 0x1bf7d0 diakses untuk baca/tulis dicantumkan. Klik entri apa pun untuk menelusuri paling detail setiap kemunculan akses memori.
0:000> dx @$cursession.TTD.Memory(0x1bf7d0,0x1bf7d4, "rw")
@$cursession.TTD.Memory(0x1bf7d0,0x1bf7d4, "rw")
[0x0]
[0x1]
[0x2]
[0x3]
...
Dalam contoh ini semua posisi dalam pelacakan di mana empat byte memori yang dimulai pada 0x13a1710 dijalankan/diubah atau diakses dicatat. Klik kejadian apa pun untuk menelusuri informasi tambahan tentang setiap kemunculan akses memori.
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
Lihat Juga
Time Travel Debugging - Pengantar objek Time Travel Debugging