Bagikan melalui


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")

Cuplikan layar output kisi contoh dx objek memori.

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

Penelusuran Kesalahan Perjalanan Waktu - Gambaran Umum