gdbでプログラムをデバッグしていますが、メモリ領域0x08049000〜0x0804a000にアクセスしたときにプログラムを停止したいと思います。メモリブレークポイントを手動で設定しようとすると、gdbは一度に3つ以上の場所をサポートしていないようです。
(gdb) awatch *0x08049000
Hardware access (read/write) watchpoint 1: *0x08049000
(gdb) awatch *0x08049001
Hardware access (read/write) watchpoint 2: *0x08049001
(gdb) awatch *0x08049002
Hardware access (read/write) watchpoint 3: *0x08049002
(gdb) run
Starting program: /home/iblue/git/some-code/some-executable
Warning:
Could not insert hardware watchpoint 3.
Could not insert hardware breakpoints:
You may have requested too many hardware breakpoints/watchpoints.
これがどこで尋ねられたのかという質問がすでにあり、その答えは、valgrindでこれを行うことが可能かもしれないということでした。残念ながら、回答にはvalgrindマニュアルへの例や参照が含まれていないため、あまり啓蒙的ではありませんでした。gdbを使用して、メモリの領域全体の変更を監視するにはどうすればよいですか。
だから:どうすればメモリ領域全体を見ることができますか?