diff options
author | Hannes Domani <ssbssa@yahoo.de> | 2020-04-22 19:05:07 +0200 |
---|---|---|
committer | Hannes Domani <ssbssa@yahoo.de> | 2020-04-22 21:23:39 +0200 |
commit | 51ac8e22655ba777498249ae0c776fd794a2c298 (patch) | |
tree | 1d88e1d2d36923a69e941b9e6c1eaf007d112b8d | |
parent | 33b5a83027f1eb5a7a628f010667f470b21d5aa8 (diff) | |
download | gdb-51ac8e22655ba777498249ae0c776fd794a2c298.zip gdb-51ac8e22655ba777498249ae0c776fd794a2c298.tar.gz gdb-51ac8e22655ba777498249ae0c776fd794a2c298.tar.bz2 |
Fix search of large memory area in gdbserver
If the search area is bigger than SEARCH_CHUNK_SIZE (16000), then you get
an error in gdbserver:
gdb: (gdb) find /w 0x3c43f0,+20000,0x04030201
gdb: Pattern not found.
gdbserver: Unable to access 3997 bytes of target memory at 0x3c8273, halting search.
The return value of any additional gdb_read_memory calls were compared with the
wrong value, this fixes it.
gdbserver/ChangeLog:
2020-04-22 Hannes Domani <ssbssa@yahoo.de>
* server.cc (handle_search_memory_1): Fix gdb_read_memory return value
comparison.
-rw-r--r-- | gdbserver/ChangeLog | 5 | ||||
-rw-r--r-- | gdbserver/server.cc | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog index 96642e5..f017922 100644 --- a/gdbserver/ChangeLog +++ b/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2020-04-22 Hannes Domani <ssbssa@yahoo.de> + + * server.cc (handle_search_memory_1): Fix gdb_read_memory return value + comparison. + 2020-04-16 Tom Tromey <tromey@adacore.com> * win32-low.cc (windows_nat::handle_access_violation): New diff --git a/gdbserver/server.cc b/gdbserver/server.cc index 77175ff..0672f9b 100644 --- a/gdbserver/server.cc +++ b/gdbserver/server.cc @@ -1103,7 +1103,7 @@ handle_search_memory_1 (CORE_ADDR start_addr, CORE_ADDR search_space_len, : chunk_size); if (gdb_read_memory (read_addr, search_buf + keep_len, - nr_to_read) != search_buf_size) + nr_to_read) != nr_to_read) { warning ("Unable to access %ld bytes of target memory " "at 0x%lx, halting search.", |