Я отлаживаю программу в gdb, и я хочу, чтобы программа остановилась, когда обратилась область памяти 0x08049000 до 0x0804a000. Когда я пытаюсь установить контрольные точки памяти вручную, gdb, похоже, не поддерживает более двух локаций за раз.
(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 можно использовать для просмотра любых изменений во всей области памяти?
Итак: как я могу наблюдать за всей областью памяти?