ソフトウェア設計及び演習2016
ソースコードの表示(list)
実行ファイルを引数として 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 31 show(x, NUM);
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++) {
ここで,list コマンドを実行すると,以下のように,合計10行(5行前から)の内容が表示される.
(gdb) list 6 #define NUM 3 7 int x[] = {3, 2, 1}; 8 9 int sort(int x[], int n) { 10 int i, j, temp; 11 for (i = 0; i < n-1; i++) { 12 for (j = n-1; j > i; j--) { 13 if (x[j-1] > x[j]) { 14 temp = x[j]; 15 x[j] = x[j-1];
次に,20行目を中心として,そのまわりの10行を表示する.
(gdb) list 20 15 x[j] = x[j-1]; 16 x[j-1]= temp; 17 } 18 } 19 show(x, NUM); 20 } 21 } 22 23 void show(int x[], int n) { 24 int i;
さらに,show 関数のはじまりを中心として,そのまわりの10行を表示する.
(gdb) list show 18 } 19 show(x, NUM); 20 } 21 } 22 23 void show(int x[], int n) { 24 int i; 25 for (i = 0; i < n ; i++) 26 printf("%d\t", x[i]); 27 printf("\n");
continue コマンドを使用してプログラムの最後まで実行して,quit コマンドで gdb を終了させる.
(gdb) continue Continuing. 1 3 2 1 2 3 Program exited with code 02. (gdb) quit
最終更新日:2015/03/05 10:01:21