ソフトウェア設計及び演習2017
変数内容の表示 [print, display
変数内容の表示 [print, display]
先ほどと同様に,実行ファイルを引数として gdb を起動させる.
$ gdb test ...
main 関数にブレークポイントを設定して,run コマンドでプログラムを実行する.
(gdb) break main Breakpoint 1 at 0x400664: file test.c, line 37. (gdb) run Starting program: /.../test Breakpoint 1, main () at test.c:31
next コマンドで show 関数を飛ばして,step コマンドで sort 関数の中に入る.
(gdb) next 3 2 1 32 sort(x, NUM); (gdb) step sort (x=0x601028, n=3) at test.c:11 11 for (i = 0; i < n-1; i++) { (gdb) next 12 for (j = n-1; j > i; j--) { (gdb) next 13 if (x[j-1] > x[j]) {
print コマンドを使用して,変数の値を調べることができる.
(gdb) print i $1 = 0 (gdb) print j $2 = 2 (gdb) print x[j-1] $3 = 2 (gdb) print x[j] $4 = 1 (gdb) print *(int [3]*)x $5 = {3, 2, 1}
ptype コマンドによって、変数の型を調査することができる.
(gdb) ptype x type = int *
display コマンドを用いて,変数の変化を常に表示する. 例えば,next コマンドで一行ずつ実行する時に毎回,自動的に変数の内容を表示する.
(gdb) display j 1: j = 2 (gdb) next 14 temp = x[j]; 1: j = 2 (gdb) next 15 x[j] = x[j-1]; 1: j = 2 (gdb) next 16 x[j-1]= temp; 1: j = 2 (gdb) next 12 for (j = n-1; j > i; j--) { 1: j = 2 (gdb) next 13 if (x[j-1] > x[j]) { 1: j = 1
undisplay コマンドを用いて,変数の表示を消すことができる.
(gdb) undisplay 1 (gdb) next 14 temp = x[j];
continue コマンドを使用してプログラムの最後まで実行して,quit コマンドで gdb を終了させる.
(gdb) continue Continuing. 1 3 2 1 2 3 Program exited with code 02. (gdb) quit
最終更新日:2017/04/03 09:14:19