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
レジスタの読み取り元のプロセッサを指定します。 既定値はゼロです。 Processor を指定した場合、Register パラメーターを含めることはできません。すべてのレジスタが表示されます。 構文の詳細については、「マルチプロセッサ構文」を参照してください。 プロセッサは、カーネルモードでのみ指定できます。

Thread
レジスタの読み取り元のスレッドを指定します。 スレッドを指定しない場合は、現在のスレッドが使用されます。 構文の詳細については、「スレッド構文」を参照してください。 スレッドは、ユーザー モードでのみ指定できます。

M マスク
デバッガーがレジスタを表示するときに使用するマスクを指定します。 "M" は大文字である必要があります。 Mask は、レジスタ表示に関する何かを示すビットの合計です。 ビットの意味は、プロセッサとモードによって異なります (詳細については、次の「解説」の表を参照してください)。 M を省略した場合は、既定のマスクが使用されます。 Rm (登録マスク) コマンドを使用して、既定のマスクを設定または表示できます。

F
浮動小数点レジスタを表示します。 "F" は大文字である必要があります。 このオプションは、M 0x4 に相当します。

X
SSE XMM レジスタを表示します。 このオプションは、M 0x40 に相当します。

Y
AVX YMM レジスタを表示します。 このオプションは、M 0x200 に相当します。

YI
AVX YMM 整数レジスタを表示します。 このオプションは、M 0x400 に相当します。

Z
浮動小数点形式で AVX-512 YMM レジスタ (zmm0-zmm31) を表示します。

ZI
整数形式で AVX-512 YMM レジスタ (zmm0-zmm31) を表示します。

K
AVX-512 Opmask 述語レジスタ (K0-K7) を表示します。

?
(擬似レジスタ割り当てのみ) 擬似レジスタに型付き情報を取得させます。 任意の型が許可されます。 r? 構文の詳細については、「デバッガー コマンド プログラムの例」を参照してください。

登録
表示または変更するレジスタ、フラグ、擬似レジスタ、または固定名のエイリアスを指定します。 このパラメーターの前にアット マーク (@) を付けることはできません。 構文の詳細については、「レジスタ構文」を参照してください。

Num
表示する要素の数を指定します。 このパラメーターを省略して Type を指定すると、レジスタの完全な長さが表示されます。

Type
各レジスタ要素を表示するデータ形式を指定します。 Type は、64 ビットおよび 128 ビットのベクトル レジスタでのみ使用できます。 複数の型を指定できます。

次の値のいずれかまたは複数を指定できます。

Type 表示の形式

ib

符号付きバイト

ブ

符号なしバイト

iw

符号付きワード

uw

符号なしワード

id

符号付き DWORD

ud

符号なし DWORD

iq

符号付きクワッドワード

uq

符号なしクワッドワード

f

32 ビット浮動小数点

d

64 ビット浮動小数点

Value
レジスタに割り当てる値を指定します。 構文の詳細については 数値式の構文」を参照してください。

.
現在の命令で使用されるレジスタが表示されます。 レジスタが使用されない場合、出力は表示されません。

Environment

項目 説明
モード ユーザー モード、カーネル モード
対象 ライブ、クラッシュ ダンプ
プラットフォーム すべて

追加情報

ユーザー モード アドレス コンテキストおよびその他のコンテキスト設定の詳細については、「コンテキストの変更」を参照してください。

解説

Register を指定しない場合、r コマンドはすべての非浮動小数点レジスタを表示し、rF コマンドはすべての浮動小数点レジスタを表示します。 この動作は、rm (マスク登録) コマンドを使用して変更できます。

Register を指定しても等号 (=) と Value パラメーターを省略した場合、コマンドはレジスタの現在の値を表示します。

Register と等号 (=) を指定し、Value を省略した場合、コマンドはレジスタの現在の値を表示し、新しい値の入力を求めます。

Register、等号 (=)、および Value を指定すると、コマンドは値を含むようにレジスタを変更します。 (非表示モードがアクティブな場合は、等号を省略できます。 非表示モードを有効にするには、sq (非表示モードの設定) コマンドを使用します。 カーネル モードでは、KDQUIET 環境変数を使用して非表示モードを有効にすることもできます)。

複数のレジスタをコンマで区切って指定できます。

ユーザー モードで、r コマンドは、現在のスレッドに関連付けられているレジスタを表示します。 スレッドの詳細については、「プロセスとスレッドの制御」を参照してください。

カーネル モードで、r コマンドは、現在のレジスタ コンテキストに関連付けられているレジスタを表示します。 特定のスレッド、コンテキスト レコード、またはトラップ フレームに一致するようにレジスタ コンテキストを設定できます。 指定されたレジスタ コンテキストの最も重要なレジスタのみが実際に表示され、その値を変更することはできません。 レジスタのコンテキストの詳細については、「レジスタのコンテキスト」を参照してください。

浮動小数点レジスタを名前で指定する場合、F オプションは必要ありません。 1 つの浮動小数点レジスタを指定すると、10 進値に加えて生の 16 進値が表示されます。

次の Mask ビットは、x86 ベースのプロセッサまたは x64 ベースのプロセッサでサポートされています。

bit Value 説明

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 レジスタを 10 進整数で表示します。

11

0x800

AVX XMM レジスタを 10 進整数で表示します。

次のコード例は、x86 ベースのプロセッサの r コマンドを示しています。

カーネル モードでは、次のコマンドは、プロセッサ 2 のレジスタを示しています。

1: kd> 2r 

ユーザー モードでは、次のコマンドは、スレッド 2 のレジスタを示しています。

0:000> ~2 r 

ユーザー モードでは、次のコマンドは、すべてのスレッドに関連付けられているすべての eax レジスタを (スレッド インデックス順に) 表示します。

0:000> ~* r eax

次のコマンドは、0x000000FF に現在のスレッドの eax レジスタを設定します。

0:000> r eax=0x000000FF

次のコマンドは、st0 1.234e+10 (F は省略可能) に登録を設定します。

0:000> rF st0=1.234e+10

次のコマンドは、0 フラグを表示します。

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