!!! ソースコードの表示 [list] 実行ファイルを引数として gdb を起動させる. 8< $ gdb test ... >8 main 関数にブレークポイントを設定して,run コマンドでプログラムを実行する. 8< (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); >8 next コマンドで show 関数を飛ばして,step コマンドで sort 関数の中に入る. 8< (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++) { >8 ここで,list コマンドを実行すると,以下のように,合計10行(5行前から)の内容が表示される. 8< (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]; >8 次に,20行目を中心として,そのまわりの10行を表示する. 8< (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; >8 さらに,show 関数のはじまりを中心として,そのまわりの10行を表示する. 8< (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"); >8 continue コマンドを使用してプログラムの最後まで実行して,quit コマンドで gdb を終了させる. 8< (gdb) continue Continuing. 1 3 2 1 2 3 Program exited with code 02. (gdb) quit >8