My開発メモ

gdbのコマンド一覧

準備

$ gcc -g .c
$ gdb a.out

breakpointの設定

(gdb) break <行番号>
(gdb) break <関数名>
(gdb) break <ファイル名>:<行番号>
(gdb) break <ファイル名>:<関数名>
(gdb) info breakpoint -- ブレークポイント一覧
(gdb) i b

コマンドの設定

(gdb) break fibonacci
(gdb) commands 1
>printf "fibonacci was passed %d.\n", n
>end
(gdb) run
Breakpoint 1, fibonacci (n=3) at fibonacci.c:14
14 if ( n <= 1 )
fibonacci was passed 3.

このあと、continue で続ける。

次のようにすると、実行する行が表示されない。

(gdb) break fibonacci
(gdb) commands 1
>silent
>printf "fibonacci was passed %d.\n", n
>end
(gdb) run
fibonacci was passed 3.

次のようにすると、continueが不要になる。

(gdb) break fibonacci
(gdb) commands 1
>silent
>printf "fibonacci was passed %d.\n", n
>continue
>end

(gdb) run
fibonacci was passed 3.
fibonacci was passed 2.
fibonacci was passed 1.
fibonacci was passed 0.
fibonacci was passed 1.
Fibonacci(3) is 3.
[Inferior 1 (process 10631) exited normally]

マクロ

(gdb) define print_and_go
>printf $arg0, $arg1
>continue
>end
(gdb) commands 1
>silent
>print_and_go "fibonacci() was passed %d.\n" n
>end

カテゴリー: C, memo

タグ: gdb, コマンド, デバッグ

カウント: 22