Objek Memori TTD
Deskripsi
Memori TTD adalah metode yang mengambil parameter beginAddress, endAddress, dan dataAccessMask dan mengembalikan kumpulan objek memori yang berisi informasi akses memori.
Parameter
Properti | Deskripsi |
---|---|
beginAddress | Alamat awal objek memori diawali dengan 0x. |
endAddress | Alamat akhir objek memori diawali dengan 0x. |
dataAccessMask | Masker akses data yang terkandung dalam tanda kutip ganda. Ini bisa r untuk baca, w untuk tulis, e untuk eksekusi dan c untuk perubahan. |
Anak
Objek | Deskripsi |
---|---|
EventType | Jenis kejadian. Ini adalah "MemoryAccess" untuk semua TTD. Objek memori. |
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. |
Mulai Waktu | 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 TTD. Objek memori. |
AccessType | Jenis akses - Baca, Tulis, atau Jalankan. |
IP | Penunjuk instruksi kode yang membuat 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/jalankan 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 kasus eksekusi, berisi byte kode untuk instruksi. Perhatikan bahwa byte instruksi tercantum dalam urutan MSB oleh pembongkar tetapi akan disimpan dalam nilai dalam urutan LSB. |
Keterangan
Jenis akses berikut diizinkan dalam TTD. Kueri memori:
- r - baca
- w - tulis
- rw - baca/tulis
- e - jalankan
- rwe - baca / tulis / jalankan
- 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 pada 0x00a4fca0 adalah akses baca terjadi. 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 dalam jejak di mana empat byte memori yang dimulai pada 0x1bf7d0 diakses 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 jejak di mana empat byte memori yang dimulai pada 0x13a1710 dijalankan/diubah diakses tercantum. 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
Penelusuran Kesalahan Perjalanan Waktu - Pengantar objek Penelusuran Kesalahan Perjalanan Waktu