This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb/gdb-8.0-branch] [MIPS] Use lwpid from lwp_info instead of inferior_ptid


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=c6767e625c0fb73c9a12d991140670a00ad8284c

commit c6767e625c0fb73c9a12d991140670a00ad8284c
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 fb64b64..c8b0084 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"));
 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]