From: Hannes Domani Date: Wed, 22 Apr 2020 17:05:07 +0000 (+0200) Subject: Fix search of large memory area in gdbserver X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=51ac8e22655ba777498249ae0c776fd794a2c298;p=binutils-gdb.git 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 * server.cc (handle_search_memory_1): Fix gdb_read_memory return value comparison. --- diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog index 96642e5cf39..f017922d9e1 100644 --- a/gdbserver/ChangeLog +++ b/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2020-04-22 Hannes Domani + + * server.cc (handle_search_memory_1): Fix gdb_read_memory return value + comparison. + 2020-04-16 Tom Tromey * win32-low.cc (windows_nat::handle_access_violation): New diff --git a/gdbserver/server.cc b/gdbserver/server.cc index 77175ff74cb..0672f9bc4d1 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.",