Смотреть диапазон памяти в gdb?

Я отлаживаю программу в 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 для отслеживания любых изменений во всей области памяти?

Итак: Как я могу просмотреть всю область памяти?

27
задан Community 23 May 2017 в 12:32
поделиться