This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] [MIPS] Use lwpid from lwp_info instead of inferior_ptid
- From: Yao Qi <qiyao at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 28 Apr 2017 08:36:12 -0000
- Subject: [binutils-gdb] [MIPS] Use lwpid from lwp_info instead of inferior_ptid
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7974a6050b6e2c44722a533e2d5d9131e7db00ff
commit 7974a6050b6e2c44722a533e2d5d9131e7db00ff
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 28 09:33:16 2017 +0100
[MIPS] Use lwpid from lwp_info instead of inferior_ptid
RAJESH reported that GDB gets "Couldn't write debug register: No such
process." on mips64 when GDB attaches to a multi threaded application.
Looks GDB nows PTRACE_GET_WATCH_REGS for inferior_ptid but
PTRACE_SET_WATCH_REGS for lwp->ptid, they may be different.
gdb:
2017-04-28 Yao Qi <yao.qi@linaro.org>
* mips-linux-nat.c (mips_linux_new_thread): Get lwpid from
lwp_info instead of getting from inferior_ptid.
Diff:
---
gdb/ChangeLog | 5 +++++
gdb/mips-linux-nat.c | 5 ++---
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 88b44f9..9abf276 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2017-04-28 Yao Qi <yao.qi@linaro.org>
+
+ * mips-linux-nat.c (mips_linux_new_thread): Get lwpid from
+ lwp_info instead of getting from inferior_ptid.
+
2017-04-27 Keith Seitz <keiths@redhat.com>
* gdbtypes.c (LVALUE_REFERENCE_TO_RVALUE_BINDING_BADNESS)
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
index 9596b49..c5c18fd 100644
--- a/gdb/mips-linux-nat.c
+++ b/gdb/mips-linux-nat.c
@@ -624,14 +624,13 @@ write_watchpoint_regs (void)
static void
mips_linux_new_thread (struct lwp_info *lp)
{
- int tid;
+ long tid = ptid_get_lwp (lp->ptid);
- if (!mips_linux_read_watch_registers (ptid_get_lwp (inferior_ptid),
+ if (!mips_linux_read_watch_registers (tid,
&watch_readback,
&watch_readback_valid, 0))
return;
- tid = ptid_get_lwp (lp->ptid);
if (ptrace (PTRACE_SET_WATCH_REGS, tid, &watch_mirror, NULL) == -1)
perror_with_name (_("Couldn't write debug register"));
}