From 51ac8e22655ba777498249ae0c776fd794a2c298 Mon Sep 17 00:00:00 2001 From: Hannes Domani Date: Wed, 22 Apr 2020 19:05:07 +0200 Subject: 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. --- gdbserver/server.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gdbserver/server.cc') 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.", -- cgit v1.1