From: Pedro Alves Date: Fri, 29 Sep 2017 11:33:41 +0000 (+0100) Subject: gdbserver/libthread_db: Don't ignore memory reading failures X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5b9ca4d43ba0313612e8ad6e50221e8f20ebd129;p=binutils-gdb.git gdbserver/libthread_db: Don't ignore memory reading failures If we had this in place before, then the regression fixed by the previous commit would have been been visible is all test runs. E.g.: Running src/gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp ... FAIL: gdb.threads/multi-create-ns-info-thr.exp: continue to breakpoint 6 Debugging manually we'd see this: gdbserver: Cannot get thread handle for LWP 1467: generic error Instead of: gdbserver: PID mismatch! Expected 27472, got 27471 which is misleading - gdbserver didn't 27471, that was stale stack data from previous function invocations. gdb/gdbserver/ChangeLog: 2017-09-29 Pedro Alves * proc-service.c (ps_pdread): Return PS_ERR if reading memory fails. --- diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index f27451da2f9..0dbcae26622 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2017-09-29 Pedro Alves + + * proc-service.c (ps_pdread): Return PS_ERR if reading memory + fails. + 2017-09-29 Pedro Alves * linux-low.c (handle_extended_wait): Pass parent thread instead diff --git a/gdb/gdbserver/proc-service.c b/gdb/gdbserver/proc-service.c index 98d6acda0a9..5b058fdeb09 100644 --- a/gdb/gdbserver/proc-service.c +++ b/gdb/gdbserver/proc-service.c @@ -80,7 +80,8 @@ ps_err_e ps_pdread (gdb_ps_prochandle_t ph, psaddr_t addr, gdb_ps_read_buf_t buf, gdb_ps_size_t size) { - read_inferior_memory ((uintptr_t) addr, (gdb_byte *) buf, size); + if (read_inferior_memory ((uintptr_t) addr, (gdb_byte *) buf, size) != 0) + return PS_ERR; return PS_OK; }