aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2017-09-29 12:33:41 +0100
committerPedro Alves <palves@redhat.com>2017-09-29 13:10:39 +0100
commit5b9ca4d43ba0313612e8ad6e50221e8f20ebd129 (patch)
treec291d2d9d5e2ebef31ef0a37367e629006dbc8bd /gdb/gdbserver/proc-service.c
parentFix gdbserver regression exposed by gdb.threads/multi-create-ns-info-thr.exp (diff)
downloadbinutils-gdb-5b9ca4d43ba0313612e8ad6e50221e8f20ebd129.tar.gz
binutils-gdb-5b9ca4d43ba0313612e8ad6e50221e8f20ebd129.tar.bz2
binutils-gdb-5b9ca4d43ba0313612e8ad6e50221e8f20ebd129.zip
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 <palves@redhat.com> * proc-service.c (ps_pdread): Return PS_ERR if reading memory fails.
Diffstat (limited to 'gdb/gdbserver/proc-service.c')
-rw-r--r--gdb/gdbserver/proc-service.c3
1 files changed, 2 insertions, 1 deletions
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;
}