JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3: dbx コマンドによるデバッグ     Oracle Solaris Studio 12.3 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  dbx の概要

2.  dbx の起動

3.  dbx のカスタマイズ

4.  コードの表示とコードへの移動

5.  プログラムの実行制御

6.  ブレークポイントとトレースの設定

7.  呼び出しスタックの使用

8.  データの評価と表示

9.  実行時検査

10.  修正継続機能 (fix と cont)

11.  マルチスレッドアプリケーションのデバッグ

12.  子プロセスのデバッグ

13.  OpenMP プログラムのデバッグ

14.  シグナルの処理

15.  dbx を使用してプログラムをデバッグする

16.  dbx を使用した Fortran のデバッグ

17.  dbx による Java アプリケーションのデバッグ

18.  機械命令レベルでのデバッグ

メモリーの内容を調べる

examine または x コマンドの使用

アドレスを使用する

書式を使用する

カウントを使用する

アドレスの使用例

dis コマンドの使用

listi コマンドの使用

機械命令レベルでのステップ実行とトレース

機械命令レベルでステップ実行する

機械命令レベルでトレースする

機械命令レベルでブレークポイントを設定する

あるアドレスにブレークポイントを設定する

regs コマンドの使用

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

SPARC レジスタ情報

x86 レジスタ情報

AMD64 レジスタ情報

19.  dbx の Korn シェル機能

20.  共有ライブラリのデバッグ

A.  プログラム状態の変更

B.  イベント管理

C.  マクロ

D.  コマンドリファレンス

索引

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
fsbase  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
fsbase  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 through $g7
「大域」レジスタ
$o0 through $o7
「出力」レジスタ
$l0 through $l7
「局所」レジスタ
$i0 through $i7
「入力」レジスタ
$fp
フレームポインタ (レジスタ $i6 と等価)
$sp
スタックポインタ (レジスタ $o6 と等価)
$y
Y レジスタ
$psr
プロセッサ状態レジスタ
$wim
ウィンドウ無効マスクレジスタ
$tbr
トラップベースレジスタ
$pc
プログラムカウンタ
$npc
次のプログラムカウンタ
$f0 through $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
フラグ
$uesp
ユーザースタックポインタ
$ss
スタックセグメントレジスタ

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

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

80386 用の下位 16 ビットのレジスタは次のとおりです。

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

上記のうち最初の 4 つの 80386 用 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 through $st7
データレジスタ

AMD64 レジスタ情報

AMD64 アーキテクチャーのレジスタ情報は次のとおりです。

レジスタ
説明
rax
汎用レジスタ - 関数呼び出しの引数の引き渡し
rbx
汎用レジスタ - 呼び出し先保存
rcx
汎用レジスタ - 関数呼び出しの引数の引き渡し
rdx
汎用レジスタ - 関数呼び出しの引数の引き渡し
rbp
汎用レジスタ - スタック管理/フレームポインタ
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
セグメントレジスタ
os
セグメントレジスタ
es
セグメントレジスタ
fs
セグメントレジスタ
gs
セグメントレジスタ
ss
セグメントレジスタ
fcw
fxsave および fxstor メモリーイメージ制御ワード
fsw
fxsave および fxstor メモリーイメージステータスワード
ftw
fxsave および fxstor メモリーイメージタグワード
fop
fxsave および fxstor メモリーイメージ最終 x87 オペコード
frip
fxsave および fxstor メモリーイメージ 64 ビットオフセットからコードセグメントへ
frdp
fxsave および fxstor メモリーイメージ 64 ビットオフセットからデータセグメントへ
mxcsr
fxsave および fxstor メモリーイメージ 128 メディア命令制御およびステータスレジスタ
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 の int 型、float 型、または double 型を持つと見なすことができます。