ソフトウェア設計及び演習2016
書き込みの監視 [watch
書き込みの監視 [watch]
先ほどと同様に,実行ファイルを引数として gdb を起動させる.
$ gdb test ...
sort 関数にブレークポイントを設定する.
(gdb) break sort Breakpoint 1 at 0x400553: file test.c, line 11.
run コマンドでプログラムを実行して,delete コマンドでブレークポイントを削除する.
(gdb) run Starting program: /home/staff/luxin/OLD/program1/test 3 2 1 Breakpoint 1, sort (x=0x601028, n=3) at test.c:11 11 for (i = 0; i < n-1; i++) { (gdb) delete 1
watch コマンドで変数 j の書き込みを監視する.
(gdb) watch j Hardware watchpoint 2: j
continue コマンドを2回使用する.変数 j を書き込み時に,プログラムが一時停止する.
(gdb) continue Continuing. Hardware watchpoint 2: j Old value = 4195424 New value = 2 0x0000000000400568 in sort (x=0x601028, n=3) at test.c:12 12 for (j = n-1; j > i; j--) { (gdb) continue Continuing. Hardware watchpoint 2: j Old value = 2 New value = 1 0x00000000004005df in sort (x=0x601028, n=3) at test.c:12 12 for (j = n-1; j > i; j--) {
info watchpoints コマンドによって,設定されたすべてのウォッチポイントを表示する.
(gdb) info watchpoints Num Type Disp Enb Address What 2 hw watchpoint keep y j breakpoint already hit 2 times
delete コマンドでウォッチポイントを削除する.
(gdb) delete 2 (gdb) info watchpoints No watchpoints.
continue コマンドを使用してプログラムの最後まで実行して,quit コマンドで gdb を終了させる.
(gdb) continue Continuing. 1 3 2 1 2 3 Program exited with code 02. (gdb) quit
最終更新日:2015/03/05 10:01:26