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