r (Registers)
r命令會顯示或修改暫存器、浮點暫存器、旗標、虛擬暫存器和固定名稱別名。
User-Mode
[~Thread] r[M Mask|F|X|?] [ Register[:[Num]Type] [= [Value]] ]
r.
Kernel-Mode
[Processor] r[M Mask|F|X|Y|YI|?] [ Register[:[Num]Type] [= [Value]] ]
r.
參數
處理器
指定暫存器從中讀取的處理器。 預設值為零。 如果您指定 Processor,則不能包含 Register 參數--所有暫存器都會顯示。 如需語法的詳細資訊,請參閱 多處理器語法。 您只能在核心模式中指定處理器。
執行緒
指定從中讀取暫存器執行緒。 如果您未指定執行緒,則會使用目前的執行緒。 如需語法的詳細資訊,請參閱 執行緒語法。 您只能在使用者模式中指定執行緒。
M遮罩
指定偵錯工具顯示暫存器時要使用的遮罩。 「M」 必須是大寫字母。 Mask 是位的總和,表示有關暫存器顯示的內容。 位的意義取決於處理器和模式 (請參閱下列一節中的表格,以取得詳細資訊) 。 如果您省略 M,則會使用預設遮罩。 您可以使用 Rm (Register Mask) 命令來設定或顯示預設遮罩。
F
顯示浮點暫存器。 「F」 必須是大寫字母。 此選項相當於 M 0x4。
X
顯示 SSE XMM 暫存器。 此選項相當於 M 0x40。
Y
顯示 AVX YMM 暫存器。 此選項相當於 M 0x200。
一
顯示 AVX YMM 整數暫存器。 此選項相當於 M 0x400。
Z
以浮點格式顯示 AVX-512 YMM 暫存器 (zmm0-zmm31) 。
子
以整數格式顯示 AVX-512 YMM 暫存器 (zmm0-zmm31) 。
K
顯示 AVX-512 Opmask 述詞暫存器 (K0-K7) 。
?
(虛擬暫存器指派只會) 導致虛擬暫存器取得具型別資訊。 允許任何類型。 如需 r? 語法的詳細資訊,請參閱 偵錯工具命令程式範例。
註冊
指定要顯示或修改的暫存器、旗標、虛擬暫存器或固定名稱別名。 您不得在參數前面加上 (@) 符號。 如需語法的詳細資訊,請參閱 註冊語法。
Num
指定要顯示的元素數目。 如果您省略此參數但包含 Type,則會顯示完整暫存器長度。
類型
指定要顯示中每個暫存器專案的資料格式。 您只能搭配 64 位和 128 位向量暫存器使用 Type 。 您可以指定多個類型。
您可以指定下列一或多個值。
類型 | 顯示格式 |
---|---|
Ib |
帶正負號的位元組 |
ub |
不帶正負號的位元組 |
iw |
帶正負號的單字 |
uw |
不帶正負號的字 |
id |
帶正負號的 DWORD |
Ud |
未簽署的 DWORD |
智商 |
帶正負號的四字 |
uq |
不帶正負號的四字 |
f |
32 位浮點數 |
d |
64 位浮點數 |
價值
指定要指派給暫存器的值。 如需語法的詳細資訊,請參閱 數值運算式語法。
.
顯示目前指令中使用的暫存器。 如果未使用暫存器,則不會顯示任何輸出。
環境
項目 | 描述 |
---|---|
模式 | 使用者模式、核心模式 |
目標 | 即時、損毀傾印 |
平台 | 全部 |
其他資訊
如需暫存器內容和其他內容設定的詳細資訊,請參閱 變更內容。
備註
如果您未指定Register,r命令會顯示所有非浮點暫存器,而 rF命令會顯示所有浮點暫存器。 您可以使用 rm (Register Mask) 命令來變更此行為。
如果您指定 Register ,但省略等號 (=) 和 Value 參數,此命令會顯示暫存器目前的值。
如果您指定 Register 和等號 (=) 但省略 Value,此命令會顯示暫存器目前的值,並提示輸入新值。
如果您指定 Register,則等號 (=) ,而 Value,命令會將暫存器變更為包含值。 (如果 無訊息模式 為使用中,您可以省略等號。 您可以使用 sq (Set Quiet Mode) 命令來 開啟無訊息模式。 在核心模式中,您也可以使用 KDQUIET 環境變數.) 開啟無訊息模式
您可以指定多個暫存器,並以逗號分隔。
在使用者模式中, r 命令會顯示與目前線程相關聯的暫存器。 如需執行緒的詳細資訊,請參閱 控制進程和執行緒。
在核心模式中, r 命令會顯示與目前 暫存器內容相關聯的暫存器。 您可以將暫存器內容設定為符合特定執行緒、內容記錄或陷阱框架。 實際上只會顯示指定暫存器內容最重要的暫存器,而且您無法變更其值。 如需註冊內容的詳細資訊,請參閱 註冊內容。
當您依名稱指定浮點暫存器時,不需要 F 選項。 當您指定單一浮點暫存器時,除了小數點值之外,還會顯示原始十六進位值。
x86 型處理器或 x64 型處理器支援下列 Mask 位。
bit | 值 | Description |
---|---|---|
0 1 | 0x1 0x2 | 顯示基本整數暫存器。 (設定這兩個位的其中一個或兩者具有相同的效果。) |
2 |
0x4 |
顯示浮點暫存器。 |
3 |
0x8 |
顯示區段暫存器。 |
4 |
0x10 |
顯示 MMX 暫存器。 |
5 |
0x20 |
顯示偵錯暫存器。 在核心模式中,設定此位也會顯示 CR4 暫存器。 |
6 |
0x40 |
顯示 SSE XMM 暫存器。 |
7 |
0x80 |
(核心模式僅) 顯示控制項暫存器,例如 CR0、CR2、CR3 和 CR8。 |
8 |
0x100 |
(核心模式) 顯示描述項和工作狀態暫存器。 |
9 |
0x200 |
顯示浮點中的 AVX YMM 暫存器。 |
10 |
0x400 |
以十進位整數顯示 AVX YMM 暫存器。 |
11 |
0x800 |
以十進位整數顯示 AVX XMM 暫存器。 |
下列程式碼範例顯示 x86 型處理器的 r 命令。
在核心模式中,下列命令會顯示處理器 2 的暫存器。
1: kd> 2r
在使用者模式中,下列命令會顯示執行緒 2 的暫存器。
0:000> ~2 r
在使用者模式中,下列命令會顯示與執行緒索引順序 (所有線程相關聯的所有 eax 暫存器) 。
0:000> ~* r eax
下列命令會將目前線程的 eax 暫存器設定為0x000000FF。
0:000> r eax=0x000000FF
下列命令會將 st0 暫存器設定為 1.234e+10, (F 是選擇性的) 。
0:000> rF st0=1.234e+10
下列命令會顯示零旗標。
0:000> r zf
下列命令會將 xmm0 暫存器顯示為 16 個不帶正負號的位元組,然後以雙精確度浮點格式顯示 xmm1 暫存器的完整內容。
0:000> r xmm0:16ub, xmm1:d
如果目前的語法為 C++,您必須先在登錄前面加上 at 符號 (@) 。 因此,您可以使用下列命令,將 ebx 暫存器複製到 eax 暫存器。
0:000> r eax = @ebx
下列命令會以 r 命令顯示暫存器的方式顯示虛擬暫存器。
0:000> r $teb
您也可以使用 r 命令來建立 固定名稱別名。 這些別名不是暫存器或虛擬暫存器,即使它們與 r 命令相關聯也一樣。 如需這些別名的詳細資訊,請參閱 使用別名。
以下是 x86 型處理器上的 r. 命令範例。 呼叫堆疊的最後一個專案在命令本身之前。
01004af3 8bec mov ebp,esp
0:000> r.
ebp=0006ffc0 esp=0006ff7c
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應