Oracle® Developer Studio 12.5: dbx コマンドによるデバッグ

印刷ビューの終了

更新: 2016 年 6 月
 
 

regs コマンドの使用

regs コマンドを使用すると、すべてのレジスタの値を出力できます。

regs コマンドの構文は次のとおりです。

regs [-f][-F]

-f には、浮動小数点レジスタ (単精度) が含まれます。-F には、浮動小数点レジスタ (倍精度) が含まれます。

詳細については、regs コマンドを参照してください。

SPARC ベースのシステムの例:

dbx[13] regs -F
current thread: t@1
current frame:  [1]
g0-g3    0x00000000 0x0011d000 0x00000000 0x00000000
g4-g7    0x00000000 0x00000000 0x00000000 0x00020c38
o0-o3    0x00000003 0x00000014 0xef7562b4 0xeffff420
o4-o7    0xef752f80 0x00000003 0xeffff3d8 0x000109b8
l0-l3    0x00000014 0x0000000a 0x0000000a 0x00010a88
l4-l7    0xeffff438 0x00000001 0x00000007 0xef74df54
i0-i3    0x00000001 0xeffff4a4 0xeffff4ac 0x00020c00
i4-i7    0x00000001 0x00000000 0xeffff440 0x000108c4
y        0x00000000
psr      0x40400086
pc       0x000109c0:main+0x4    mov     0x5, %l0
npc      0x000109c4:main+0x8    st      %l0, [%fp - 0x8]
f0f1     +0.00000000000000e+00
f2f3     +0.00000000000000e+00
f4f5     +0.00000000000000e+00
f6f7     +0.00000000000000e+00
...

x64 ベースのシステムの例の場合:

(dbx) regs
current frame:  [1]
r15     0x0000000000000000
r14     0x0000000000000000
r13     0x0000000000000000
r12     0x0000000000000000
r11     0x0000000000401b58
r10     0x0000000000000000
r9      0x0000000000401c30
r8      0x0000000000416cf0
rdi     0x0000000000416cf0
rsi     0x0000000000401c18
rbp     0xfffffd7fffdff820
rbx     0xfffffd7fff3fb190
rdx     0x0000000000401b50
rcx     0x0000000000401b54
rax     0x0000000000416cf0
trapno  0x0000000000000003
err     0x0000000000000000
rip     0x0000000000401709:main+0xf9    movl $0x0000000000000000,0xfffffffffffffffc(%rbp)
cs      0x000000000000004b
eflags  0x0000000000000206
rsp     0xfffffd7fffdff7b0
ss      0x0000000000000043
fs      0x00000000000001bb
gs      0x0000000000000000
es      0x0000000000000000
ds      0x0000000000000000
fs_base  0xfffffd7fff3a2000
gsbase  0xffffffff80000000
(dbx) regs -F
current frame:  [1]
r15     0x0000000000000000
r14     0x0000000000000000
r13     0x0000000000000000
r12     0x0000000000000000
r11     0x0000000000401b58
r10     0x0000000000000000
r9      0x0000000000401c30
r8      0x0000000000416cf0
rdi     0x0000000000416cf0
rsi     0x0000000000401c18
rbp     0xfffffd7fffdff820
rbx     0xfffffd7fff3fb190
rdx     0x0000000000401b50
rcx     0x0000000000401b54
rax     0x0000000000416cf0
trapno  0x0000000000000003
err     0x0000000000000000
rip     0x0000000000401709:main+0xf9    movl     $0x0000000000000000,0xfffffffffffffffc(%rbp)
cs      0x000000000000004b
eflags  0x0000000000000206
rsp     0xfffffd7fffdff7b0
ss      0x0000000000000043
fs      0x00000000000001bb
gs      0x0000000000000000
es      0x0000000000000000
ds      0x0000000000000000
fs_base  0xfffffd7fff3a2000
gsbase  0xffffffff80000000
st0     +0.00000000000000000000e+00
st1     +0.00000000000000000000e+00
st2     +0.00000000000000000000e+00
st3     +0.00000000000000000000e+00
st4     +0.00000000000000000000e+00
st5     +0.00000000000000000000e+00
st6     +0.00000000000000000000e+00
st7     +NaN
xmm0a-xmm0d     0x00000000 0xfff80000 0x00000000 0x00000000
xmm1a-xmm1d     0x00000000 0x00000000 0x00000000 0x00000000
xmm2a-xmm2d     0x00000000 0x00000000 0x00000000 0x00000000
xmm3a-xmm3d     0x00000000 0x00000000 0x00000000 0x00000000
xmm4a-xmm4d     0x00000000 0x00000000 0x00000000 0x00000000
xmm5a-xmm5d     0x00000000 0x00000000 0x00000000 0x00000000
xmm6a-xmm6d     0x00000000 0x00000000 0x00000000 0x00000000
xmm7a-xmm7d     0x00000000 0x00000000 0x00000000 0x00000000
xmm8a-xmm8d     0x00000000 0x00000000 0x00000000 0x00000000
xmm9a-xmm9d     0x00000000 0x00000000 0x00000000 0x00000000
xmm10a-xmm10d   0x00000000 0x00000000 0x00000000 0x00000000
xmm11a-xmm11d   0x00000000 0x00000000 0x00000000 0x00000000
xmm12a-xmm12d   0x00000000 0x00000000 0x00000000 0x00000000
xmm13a-xmm13d   0x00000000 0x00000000 0x00000000 0x00000000
xmm14a-xmm14d   0x00000000 0x00000000 0x00000000 0x00000000
xmm15a-xmm15d   0x00000000 0x00000000 0x00000000 0x00000000
fcw-fsw  0x137f 0x0000
fctw-fop        0x0000 0x0000
frip     0x0000000000000000
frdp     0x0000000000000000
mxcsr    0x00001f80
mxcr_mask       0x0000ffff
(dbx)

プラットフォーム固有のレジスタ

このセクションの表は、式で使用できる SPARC アーキテクチャー、x86 アーキテクチャー、および AMD64 アーキテクチャーのプラットフォーム固有のレジスタ名を示しています。

SPARC レジスタ情報

次の表は、SPARC アーキテクチャーのレジスタ情報を示しています。

レジスタ
説明
$g0 - $g7
大域レジスタ
$o0 - $o7
「出力」レジスタ
$l0 - $l7
「局所」レジスタ
$i0 - $i7
「入力」レジスタ
$fp
フレームポインタ (レジスタ $i6 と等価)
$sp
スタックポインタ (レジスタ $o6 と等価)
$y
Y レジスタ
$psr
プロセッサ状態レジスタ
$wim
ウィンドウ無効マスクレジスタ
$tbr
トラップベースレジスタ
$pc
プログラムカウンタ
$npc
次のプログラムカウンタ
$f0 - $f31
FPU「f」レジスタ
$fsr
FPU ステータスレジスタ
$fq
FPU キュー

$f0f1 $f2f3 ... $f30f31 のような浮動小数点レジスタのペアは、C の「double」型とみなされます (通常、$fN レジスタは C の「float」型とみなされます)。これらのペアは、$d0 ... $d30 とも呼ばれます。

次の 4 倍精度浮動小数点レジスタは、C の long double 型を持つと見なされます。これらのレジスタは、SPARC V9 ハードウェア上で使用できます。

$q0 $q4 through $q60

次のレジスタペアは、2 つのレジスタの下位 32 ビットを組み合わせたもので、SPARC V8+ ハードウェアで使用できます。

$g0g1 through $g6g7
$o0o1 through $o6o7

次の追加レジスタは、SPARC V9 および V8+ ハードウェアで使用できます。

$xg0 through $xg7
$xo0 through $xo7
$xfsr $tstate $gsr
$f32f33 $f34f35 through $f62f63 ($d32 ... $$d62)

SPARC のレジスタとアドレッシングの詳細については、『SPARC アーキテクチャーマニュアル バージョン 8』(トッパン刊) および『SPARC Assembly Language Reference Manual』を参照してください。

x86 レジスタ情報

次の表は、x86 アーキテクチャーのレジスタ情報を示しています。

レジスタ
説明
$gs
代替データセグメントレジスタ
$fs
代替データセグメントレジスタ
$es
代替データセグメントレジスタ
$ds
データセグメントレジスタ
$edi
デスティネーションインデックスレジスタ
$esi
ソースインデックスレジスタ
$ebp
フレームポインタ
$esp
スタックポインタ
$ebx
汎用レジスタ
$edx
汎用レジスタ
$ecx
汎用レジスタ
$eax
汎用レジスタ
$trapno
例外ベクトル番号
$err
例外を示すエラーコード
$eip
命令ポインタ
$cs
コードセグメントレジスタ
$eflags
フラグ
$ss
スタックセグメントレジスタ

一般的に使用されるレジスタには、マシンに依存しない名前が別名として指定されます。

レジスタ
説明
$sp
スタックポインタ ($uesp と同じ)。
$pc
プログラムカウンタ ($eip と同じ)。
$fp
フレームポインタ ($ebp と同じ)。
$ps
プロセッサステータスレジスタ

次の表は、80386 の下位半分 (16 ビット) のレジスタを示しています。

レジスタ
説明
$ax
汎用レジスタ
$cx
汎用レジスタ
$dx
汎用レジスタ
$bx
汎用レジスタ
$si
ソースインデックスレジスタ
$di
デスティネーションインデックスレジスタ
$ip
命令ポインタ (下位 16 ビット)
$flags
フラグ (下位 16 ビット)

80386 の最初の 4 つの 16 ビットレジスタは、次の表に示すように、8 ビットの部分に分割できます。

レジスタ
説明
$al
レジスタの下位 (右) 部分 $ax
$ah
レジスタの上位 (左) 部分 $ax
$cl
レジスタの下位 (右) 部分 $cx
$ch
レジスタの上位 (左) 部分 $cx
$dl
レジスタの下位 (右) 部分 $dx
$dh
レジスタの上位 (左) 部分 $dx
$bl
レジスタの下位 (右) 部分 $bx
$bh
レジスタの上位 (左) 部分 $bx

次の表は、80387 の各半分のレジスタを示しています。

レジスタ
説明
$fctrl
コントロールレジスタ
$fstat
ステータスレジスタ
$ftag
タグレジスタ
$fip
命令ポインタオフセット
$fcs
コードセグメントセレクタ
$fopoff
オペランドポインタオフセット
$fopsel
オペランドポインタセレクタ
$st0 - $st7
データレジスタ

AMD64 レジスタ情報

次の表は、AMD64 アーキテクチャーのレジスタ情報を示しています。

レジスタ
説明
rax
汎用レジスタ - 関数呼び出しの引数の引き渡し
rbp
汎用レジスタ - スタック管理/フレームポインタ
rbx
汎用レジスタ - 呼び出し先保存
rcx
汎用レジスタ - 関数呼び出しの引数の引き渡し
rdx
汎用レジスタ - 関数呼び出しの引数の引き渡し
rsi
汎用レジスタ - 関数呼び出しの引数の引き渡し
rdi
汎用レジスタ - 関数呼び出しの引数の引き渡し
rsp
汎用レジスタ - スタック管理/スタックポインタ
r8
汎用レジスタ - 関数呼び出しの引数の引き渡し
r9
汎用レジスタ - 関数呼び出しの引数の引き渡し
r10
汎用レジスタ - 一時レジスタ
r11
汎用レジスタ - 一時レジスタ
r12
汎用レジスタ - 呼び出し先保存
r13
汎用レジスタ - 呼び出し先保存
r14
汎用レジスタ - 呼び出し先保存
r15
汎用レジスタ - 呼び出し先保存
rflags
フラグレジスタ
rip
命令ポインタ
mmx0/st0
64 ビットメディアおよび浮動小数点レジスタ
mmx1/st1
64 ビットメディアおよび浮動小数点レジスタ
mmx2/st2
64 ビットメディアおよび浮動小数点レジスタ
mmx3/st3
64 ビットメディアおよび浮動小数点レジスタ
mmx4/st4
64 ビットメディアおよび浮動小数点レジスタ
mmx5/st5
64 ビットメディアおよび浮動小数点レジスタ
mmx6/st6
64 ビットメディアおよび浮動小数点レジスタ
mmx7/st7
64 ビットメディアおよび浮動小数点レジスタ
xmm0
128 ビットメディアレジスタ
xmm1
128 ビットメディアレジスタ
xmm2
128 ビットメディアレジスタ
xmm3
128 ビットメディアレジスタ
xmm4
128 ビットメディアレジスタ
xmm5
128 ビットメディアレジスタ
xmm6
128 ビットメディアレジスタ
xmm7
128 ビットメディアレジスタ
xmm8
128 ビットメディアレジスタ
xmm9
128 ビットメディアレジスタ
xmm10
128 ビットメディアレジスタ
xmm11
128 ビットメディアレジスタ
xmm12
128 ビットメディアレジスタ
xmm13
128 ビットメディアレジスタ
xmm14
128 ビットメディアレジスタ
xmm15
128 ビットメディアレジスタ
cs
セグメントレジスタ
es
セグメントレジスタ
fs
セグメントレジスタ
gs
セグメントレジスタ
os
セグメントレジスタ
ss
セグメントレジスタ
fcw
fxsave および fxstor メモリーイメージ制御ワード
fsw
fxsave および fxstor メモリーイメージステータスワード
fctw
fxsave および fxstor メモリーイメージタグワード
fop
fxsave および fxstor メモリーイメージ最終 x87 オペコード
frdp
fxsave および fxstor メモリーイメージ 64 ビットオフセットからデータセグメントへ
frip
fxsave および fxstor メモリーイメージ 64 ビットオフセットからコードセグメントへ
mxcsr_mask
mxcsr_mask のビットを設定し、mxcsr でサポートされる機能ビットを示す
ymmo
256 ビット Advanced Vector レジスタ
ymm1
256 ビット Advanced Vector レジスタ
ymm2
256 ビット Advanced Vector レジスタ
ymm3
256 ビット Advanced Vector レジスタ
ymm4
256 ビット Advanced Vector レジスタ
ymm5
256 ビット Advanced Vector レジスタ
ymm6
256 ビット Advanced Vector レジスタ
ymm7
256 ビット Advanced Vector レジスタ
ymm8
256 ビット Advanced Vector レジスタ
ymm9
256 ビット Advanced Vector レジスタ
ymm10
256 ビット Advanced Vector レジスタ
ymm11
256 ビット Advanced Vector レジスタ
ymm12
256 ビット Advanced Vector レジスタ
ymm13
256 ビット Advanced Vector レジスタ
ymm14
256 ビット Advanced Vector レジスタ
ymm15
256 ビット Advanced Vector レジスタ

Advanced Vector (AVX) レジスタ (ymm0 - ymm15) の各フィールドは、C intfloat、または double 型を持つと見なすことができます。