共用方式為


r (快取器)

r 命令會顯示或修改緩存器、浮點緩存器、旗標、虛擬緩存器和固定名稱別名。

使用者模式

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

內核模式

[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? 語法的詳細資訊,請參閱調試程式命令程式範例

註冊
指定要顯示或修改的緩存器、旗標、虛擬緩存器或固定名稱別名。 您不得在此參數前面加上 at (@) 符號。 如需語法的詳細資訊,請參閱 註冊語法

Num
指定要顯示的元素數目。 如果您省略此參數,但包含 Type,則會顯示完整的緩存器長度。

類型
指定要在 中顯示每個緩存器項目的數據格式。 您只能搭配 64 位和 128 位向量緩存器使用 Type 。 您可以指定多個類型。

您可以指定下列一或多個值。

類型 顯示格式

ib

已簽署的位元組

ub

未簽署的位元組

iw

帶正負號字

微波

不帶正負號字

id

帶正負號的 DWORD

ud

未簽署的 DWORD

智商

帶正負號的四字

uq

不帶正負號的四字

f

32 位浮點數

64 位浮點數

價值
指定要指派給緩存器的值。 如需語法的詳細資訊,請參閱 數值表達式語法

.
顯示目前指令中使用的緩存器。 如果未使用緩存器,則不會顯示任何輸出。

Environment

項目 說明
模式 使用者模式、核心模式
目標 即時、損毀傾印
平台 全部

其他資訊

如需註冊內容和其他內容設定的詳細資訊,請參閱 變更內容

備註

如果您未指定 Register,r 命令會顯示所有非浮點緩存器,而 rF 命令會顯示所有浮點緩存器。 您可以使用 rm (Register Mask) 命令來變更此行為

如果您指定 Register ,但省略等號 (=) 和 Value 參數,命令會顯示緩存器目前的值。

如果您指定 Register 和等號 (=),但省略 Value,命令會顯示緩存器目前的值,並提示輸入新值。

如果您指定 Register、等號 (=), 和 Value,命令會將緩存器變更為包含值。 (如果 無訊息模式 為使用中,您可以省略等號。 您可以使用 sq (Set Quiet Mode) 命令來開啟無訊息模式。 在核心模式中,您也可以使用 KDQUIET 環境變數來開啟無訊息模式。

您可以指定多個緩存器,並以逗號分隔。

在使用者模式中 ,r 命令會顯示與目前線程相關聯的緩存器。 如需線程的詳細資訊,請參閱 控制進程和線程

在核心模式中 ,r 命令會顯示與目前 緩存器內容相關聯的緩存器。 您可以設定快取器內容,以符合特定線程、內容記錄或陷阱框架。 實際上只會顯示指定緩存器內容最重要的緩存器,而且您無法變更其值。 如需註冊內容的詳細資訊,請參閱 註冊內容

當您依名稱指定浮點緩存器時, 不需要 F 選項。 當您指定單一浮點緩存器時,除了十進位值之外,也會顯示原始十六進位值。

x86 型處理器或 x64 型處理器支援下列 遮罩 位。

位元 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++,您必須在緩存器前面加上符號 (@)。 因此,您可以使用下列命令,將 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