ソフトウェア設計及び演習2016

プログラムの実行(next, step, finish)

先ほどと同様に,実行ファイルを引数として gdb を起動させる.

$ gdb test
...

main 関数にブレークポイントを設定する.

(gdb) break main
Breakpoint 1 at 0x400664: file test.c, line 31.

run コマンドでプログラムを実行して,ブレークポイントに一時停止する.

(gdb) run
Starting program: /.../test

Breakpoint 1, main () at test.c:37
31          show(x, NUM);

step コマンドで show 関数の中に入る.(step コマンドは,関数の中に入って,さらに一行ずつ進めることができる.)

(gdb) step
show (x=0x601028, n=3) at test.c:25
25          for (i = 0; i < n ; i++)

step コマンドを実行した後に,show 関数に入ったことが表示される.次に一行ずつnext コマンドで進める.

(gdb) next
26              printf("%d\t", x[i]);
(gdb) next
25          for (i = 0; i < n ; i++)
(gdb) next
26              printf("%d\t", x[i]);
(gdb) next
25          for (i = 0; i < n ; i++)
(gdb) next
26              printf("%d\t", x[i]);

finish コマンドを実行すると,show 関数から main 関数に戻る.

(gdb) finish
Run till exit from #0  show (x=0x601028, n=3) at test.c:26
3       2       1
main () at test.c:32
32          sort(x, NUM);

continue コマンドを使用してプログラムの最後まで実行する.

(gdb) continue
Continuing.
1       3       2
1       2       3

Program exited with code 02.

最後に quit コマンドで gdb を終了させる.

(gdb) quit


最終更新日:2015/03/05 10:01:22