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
たった今お世話になって、かつ、これからも使いそうなコマンドだけメモ書きします。
●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