From 5b9ca4d43ba0313612e8ad6e50221e8f20ebd129 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Fri, 29 Sep 2017 12:33:41 +0100 Subject: 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. --- gdb/gdbserver/ChangeLog | 5 +++++ gdb/gdbserver/proc-service.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'gdb') diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index f27451d..0dbcae2 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,5 +1,10 @@ 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 of process to thread_db_notice_clone. * linux-low.h (thread_db_notice_clone): Replace parent process diff --git a/gdb/gdbserver/proc-service.c b/gdb/gdbserver/proc-service.c index 98d6acd..5b058fd 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; } -- cgit v1.1