やまものブログ

メモ書きブログです (^_^;A

gdb コマンド

gdb コマンドの情報はいたるところにありますが、、、
たった今お世話になって、かつ、これからも使いそうなコマンドだけメモ書きします。

●1行実行(関数内にステップインする)
(gdb) s

●スタックフレームを表示する
(gdb) bt

●変数の値を表示する
(gdb) p 変数名

●変数の値を表示する (レジスタ
(gdb) p /x $<レジスタ名>

例) r3 の表示
(gdb) print /x $r3
$1 = 0x8056


レジスタの値を表示する (r3の実行例)
(gdb) info register r3
r3             0x8056    32854


レジスタの値一覧を表示する (実行例)
(gdb) info register
r0             0x0    0
r1             0x30    48
r2             0x7    7
r3             0x8056    32854
r4             0x1    1
r5             0x0    0
r6             0x0    0
r7             0x0    0
r8             0x0    0
r9             0x0    0
r10            0x0    0
r11            0x0    0
r12            0x0    0
sp             0xbefffe14    0xbefffe14
lr             0x80b4    32948
pc             0x8080    0x8080 <h2a+16>
cpsr           0x10    16


●メモリダンプ
(gdb)x/フォーマット アドレス

例) スタックのダンプ (12バイト)
(gdb) x/12xb $sp
0xbefffe04:    0x30    0x38    0x30    0x30    0x30    0x30    0x30    0x30
0xbefffe0c:    0x30    0x3a    0x00    0x00



自作の Cプログラムだと printf() でデバッグ情報を出せますが、アセンブラだとそういうわけにはいかないのでデバッガ様様ですね


最後に、念のため、ツールのバージョン情報です。

root@zynq:~# gdbserver --version
GNU gdbserver (Sourcery CodeBench Lite 2012.09-104) 7.4.50.20120716-cvs

$ arm-xilinx-linux-gnueabi-gdb --version
GNU gdb (Sourcery CodeBench Lite 2013.05-40) 7.4.50.20120716-cvs