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] Set proc->priv->new_inferior out of linux_add_process


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

commit 5ae3ebbae55482a9fdd01bd21455b396e23e4077
Author: Yao Qi <yao.qi@linaro.org>
Date:   Fri Jul 24 14:40:34 2015 +0100

    Set proc->priv->new_inferior out of linux_add_process
    
    Nowadays, we set proc->priv->new_inferior to 1 inside linux_add_process,
    and new_inferior is used as a flag to initialise target description later.
    linux_add_process is used for the three cases, fork/vfork event
    (handle_extended_wait), run the program (linux_create_inferior), and
    attach to the process (linux_attach).  In the first case, the child's
    target description is copied from parent's, so we don't need to initialise
    target description again later, which means we don't need to set
    proc->priv->new_inferior to 1 in this case.  For the rest of two cases,
    we need this flag.
    
    This patch move the code setting proc->priv->new_inferior to 1 inside
    linux_add_process to linux_create_inferior and linux_attach.  No
    functionality is changed.
    
    gdb/gdbserver:
    
    2015-07-24  Yao Qi  <yao.qi@linaro.org>
    
    	* linux-low.c (linux_add_process): Don't set
    	proc->priv->new_inferior.
    	(linux_create_inferior): Set proc->priv->new_inferior to 1.
    	(linux_attach): Likewise.

Diff:
---
 gdb/gdbserver/ChangeLog   |  7 +++++++
 gdb/gdbserver/linux-low.c | 13 ++++++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 6fbd664..d215d7a 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,5 +1,12 @@
 2015-07-24  Yao Qi  <yao.qi@linaro.org>
 
+	* linux-low.c (linux_add_process): Don't set
+	proc->priv->new_inferior.
+	(linux_create_inferior): Set proc->priv->new_inferior to 1.
+	(linux_attach): Likewise.
+
+2015-07-24  Yao Qi  <yao.qi@linaro.org>
+
 	* server.c (start_inferior): Code refactor.
 
 2015-07-24  Yao Qi  <yao.qi@linaro.org>
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index 2dafb03..fa9dc29 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -405,9 +405,6 @@ linux_add_process (int pid, int attached)
   proc = add_process (pid, attached);
   proc->priv = xcalloc (1, sizeof (*proc->priv));
 
-  /* Set the arch when the first LWP stops.  */
-  proc->priv->new_inferior = 1;
-
   if (the_low_target.new_process != NULL)
     proc->priv->arch_private = the_low_target.new_process ();
 
@@ -766,6 +763,7 @@ linux_create_inferior (char *program, char **allargs)
   ptid_t ptid;
   struct cleanup *restore_personality
     = maybe_disable_address_space_randomization (disable_randomization);
+  struct process_info *proc;
 
 #if defined(__UCLIBC__) && defined(HAS_NOMMU)
   pid = vfork ();
@@ -813,7 +811,9 @@ linux_create_inferior (char *program, char **allargs)
 
   do_cleanups (restore_personality);
 
-  linux_add_process (pid, 0);
+  proc = linux_add_process (pid, 0);
+  /* Set the arch when the first LWP stops.  */
+  proc->priv->new_inferior = 1;
 
   ptid = ptid_build (pid, pid, 0);
   new_lwp = add_lwp (ptid);
@@ -959,6 +959,7 @@ linux_attach (unsigned long pid)
 {
   ptid_t ptid = ptid_build (pid, pid, 0);
   int err;
+  struct process_info *proc;
 
   /* Attach to PID.  We will check for other threads
      soon.  */
@@ -967,7 +968,9 @@ linux_attach (unsigned long pid)
     error ("Cannot attach to process %ld: %s",
 	   pid, linux_ptrace_attach_fail_reason_string (ptid, err));
 
-  linux_add_process (pid, 1);
+  proc = linux_add_process (pid, 1);
+  /* Set the arch when the first LWP stops.  */
+  proc->priv->new_inferior = 1;
 
   if (!non_stop)
     {


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