Bagikan melalui


r (Daftar)

Perintah r menampilkan atau memodifikasi register, floating-point registers, flags, pseudo-registers, dan fixed-name aliass.

Mode Pengguna

[~Thread] r[M Mask|F|X|?] [ Register[:[Num]Type] [= [Value]] ] 
r.

Mode Kernel

[Processor] r[M Mask|F|X|Y|YI|?] [ Register[:[Num]Type] [= [Value]] ] 
r.

Parameter

Prosesor
Menentukan prosesor tempat register dibaca. Nilai defaultnya adalah nol. Jika Anda menentukan Prosesor, Anda tidak dapat menyertakan parameter Register --semua register ditampilkan. Untuk informasi selengkapnya tentang sintaks, lihat Sintaks Multiproscessor. Anda hanya dapat menentukan prosesor dalam mode kernel.

Benang
Menentukan utas tempat register dibaca. Jika Anda tidak menentukan utas, utas saat ini akan digunakan. Untuk informasi selengkapnya tentang sintaks, lihat Sintaks utas. Anda hanya dapat menentukan utas dalam mode pengguna.

M Masker
Menentukan masker yang akan digunakan ketika debugger menampilkan register. Huruf "M" harus berupa huruf besar. Masker adalah jumlah bit yang menunjukkan sesuatu tentang tampilan register. Arti bit tergantung pada prosesor dan mode (lihat tabel di bagian Keterangan berikut untuk informasi selengkapnya). Jika Anda menghilangkan M, masker default akan digunakan. Anda dapat mengatur atau menampilkan masker default dengan menggunakan perintah Rm (Register Mask).

F
Menampilkan register titik mengambang. Huruf "F" harus berupa huruf besar. Opsi ini setara dengan M 0x4.

X
Menampilkan register SSE XMM. Opsi ini setara dengan M 0x40.

Y
Menampilkan register AVX YMM. Opsi ini setara dengan M 0x200.

YI
Menampilkan register bilangan bulat AVX YMM. Opsi ini setara dengan M 0x400.

Z
Menampilkan register YMM AVX-512 (zmm0-zmm31) dalam format floating point.

ZI
Menampilkan register YMM AVX-512 (zmm0-zmm31) dalam format bilangan bulat.

K
Tampilkan register predikat AVX-512 Opmask (K0-K7).

Apa yang terjadi?
(penugasan Pseudo-register saja) Menyebabkan pseudo-register memperoleh informasi yang di ketik. Jenis apa pun diizinkan. Untuk informasi selengkapnya tentang sintaks r? , lihat Contoh Program Perintah Debugger.

Daftar
Menentukan register, flag, pseudo-register, atau fixed-name alias untuk ditampilkan atau diubah. Anda tidak boleh mendahului parameter ini dengan tanda (@). Untuk informasi selengkapnya tentang sintaks, lihat Mendaftarkan Sintaks.

Num
Menentukan jumlah elemen yang akan ditampilkan. Jika Anda menghilangkan parameter ini tetapi Anda menyertakan Jenis, panjang register lengkap ditampilkan.

Jenis
Menentukan format data untuk menampilkan setiap elemen register. Anda dapat menggunakan Tipe hanya dengan register vektor 64-bit dan 128-bit. Anda dapat menentukan beberapa jenis.

Anda dapat menentukan satu atau beberapa nilai berikut.

Jenis Format tampilan

Ib

Byte yang ditandatangani

Ub

Byte tidak ditandatangani

Iw

Kata yang ditandatangani

Uw

Kata tidak ditandatangani

id

DWORD yang ditandatangani

Ud

DWORD tidak ditandatangani

Iq

Quad-word yang ditandatangani

uq

Quad-word tidak ditandatangani

f

Titik mengambang 32-bit

d

Titik mengambang 64-bit

Nilai
Menentukan nilai yang akan ditetapkan ke register. Untuk informasi selengkapnya tentang sintaks, lihat Sintaks Ekspresi Numerik.

.
Menampilkan register yang digunakan dalam instruksi saat ini. Jika tidak ada register yang digunakan, tidak ada output yang ditampilkan.

Lingkungan

Item Deskripsi
Mode Mode pengguna, mode kernel
Target Live, crash dump
Platform Semua

Informasi Tambahan

Untuk informasi selengkapnya tentang konteks pendaftaran dan pengaturan konteks lainnya, lihat Mengubah Konteks.

Keterangan

Jika Anda tidak menentukan Register, perintah r menampilkan semua register non-floating-point, dan perintah rF menampilkan semua register floating-point. Anda dapat mengubah perilaku ini dengan menggunakan perintah rm (Register Mask).

Jika Anda menentukan Daftar tetapi Anda menghilangkan tanda sama dengan (=) dan parameter Nilai , perintah menampilkan nilai register saat ini.

Jika Anda menentukan Daftar dan tanda sama dengan (=) tetapi Anda menghilangkan Nilai, perintah menampilkan nilai register saat ini dan meminta nilai baru.

Jika Anda menentukan Daftar, tanda sama dengan (=), dan Nilai, perintah mengubah register menjadi berisi nilai . (Jika mode diam aktif, Anda dapat menghilangkan tanda sama dengan. Anda dapat mengaktifkan mode diam dengan menggunakan perintah sq (Atur Mode Diam). Dalam mode kernel, Anda juga dapat mengaktifkan mode diam dengan menggunakan variabel lingkungan KDQUIET.)

Anda dapat menentukan beberapa register, dipisahkan oleh koma.

Dalam mode pengguna, perintah r menampilkan register yang terkait dengan utas saat ini. Untuk informasi selengkapnya tentang utas, lihat Mengontrol Proses dan Utas.

Dalam mode kernel, perintah r menampilkan register yang terkait dengan konteks register saat ini. Anda dapat mengatur konteks register agar sesuai dengan utas, rekaman konteks, atau bingkai trap tertentu. Hanya register terpenting untuk konteks register yang ditentukan yang benar-benar ditampilkan, dan Anda tidak dapat mengubah nilainya. Untuk informasi selengkapnya tentang konteks pendaftaran, lihat Mendaftarkan Konteks.

Saat Anda menentukan register titik mengambang berdasarkan nama, opsi F tidak diperlukan. Saat Anda menentukan register titik mengambang tunggal, nilai heksadesimal mentah ditampilkan selain nilai desimal.

Bit Mask berikut didukung untuk prosesor berbasis x86 atau prosesor berbasis x64.

Bit Nilai Deskripsi

0 1

0x1 0x2

Menampilkan daftar bilangan bulat dasar. (Mengatur satu atau kedua bit ini memiliki efek yang sama.)

2

0x4

Menampilkan register titik mengambang.

3

0x8

Menampilkan register segmen.

4

0x10

Menampilkan register MMX.

5

0x20

Menampilkan daftar debug. Dalam mode kernel, pengaturan bit ini juga menampilkan register CR4.

6

0x40

Menampilkan register SSE XMM.

7

0x80

(Mode kernel saja) Menampilkan register kontrol, misalnya CR0, CR2, CR3, dan CR8.

8

0x100

(Mode kernel saja) Menampilkan deskriptor dan daftar status tugas.

9

0x200

Menampilkan register AVX YMM di floating point.

10

0x400

Menampilkan register AVX YMM dalam bilangan bulat desimal.

11

0x800

Menampilkan register AVX XMM dalam bilangan bulat desimal.

Contoh kode berikut menunjukkan perintah r untuk prosesor berbasis x86.

Dalam mode kernel, perintah berikut menunjukkan daftar untuk prosesor 2.

1: kd> 2r 

Dalam mode pengguna, perintah berikut menunjukkan daftar untuk utas 2.

0:000> ~2 r 

Dalam mode pengguna, perintah berikut menampilkan semua register eax yang terkait dengan semua utas (dalam urutan indeks utas).

0:000> ~* r eax

Perintah berikut mengatur register eax untuk utas saat ini ke 0x000000FF.

0:000> r eax=0x000000FF

Perintah berikut mengatur pendaftaran st0 ke 1.234e+10 ( F bersifat opsional).

0:000> rF st0=1.234e+10

Perintah berikut menampilkan bendera nol.

0:000> r zf 

Perintah berikut menampilkan register xmm0 sebagai 16 byte yang tidak ditandatangani lalu menampilkan konten lengkap dari register xmm1 dalam format floating-point presisi ganda.

0:000> r xmm0:16ub, xmm1:d 

Jika sintaks saat ini adalah C++, Anda harus mendahului pendaftaran dengan tanda (@). Oleh karena itu, Anda dapat menggunakan perintah berikut untuk menyalin register ebx ke register eax .

0:000> r eax = @ebx

Perintah berikut menampilkan pseudo-registers dengan cara yang sama seperti perintah r menampilkan register.

0:000> r $teb

Anda juga dapat menggunakan perintah r untuk membuat alias nama tetap. Alias ini bukan register atau pseudo-registers, meskipun dikaitkan dengan perintah r . Untuk informasi selengkapnya tentang alias ini, lihat Menggunakan Alias.

Berikut adalah contoh perintah r. pada prosesor berbasis x86. Entri terakhir dari tumpukan panggilan mendahului perintah itu sendiri.

01004af3 8bec            mov     ebp,esp
0:000> r.
ebp=0006ffc0  esp=0006ff7c