Obejrzyj zakres pamięci w gdb?

Debuguję program w gdb i chcę, aby program zatrzymał się, gdy zostanie uzyskany obszar pamięci 0x08049000 do 0x0804a000. Gdy próbuję ręcznie ustawić punkty przerwania pamięci, wydaje się, że gdb nie obsługuje więcej niż dwóch lokalizacji naraz.

(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.

Jest już pytanie, gdzie to zostało zadane, a odpowiedź brzmiała, że ​​może to być możliwe dzięki valgrind. Niestety odpowiedź nie zawiera żadnych przykładów ani odniesienia do podręcznika valgrind, więc nie było to bardzo pouczające:Jak można użyć gdb do obserwowania zmian w całym regionie pamięci?

Więc: Jak mogę oglądać cały region pamięci?

questionAnswers(2)

yourAnswerToTheQuestion