aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2015-07-24 14:40:34 +0100
committerYao Qi <yao.qi@linaro.org>2015-07-24 14:40:34 +0100
commit5ae3ebbae55482a9fdd01bd21455b396e23e4077 (patch)
tree158553fc5247edac1028633bb2675bd2a50b9283
parenteb97750bce2bf37176f745636815600177fbdba8 (diff)
downloadgdb-5ae3ebbae55482a9fdd01bd21455b396e23e4077.zip
gdb-5ae3ebbae55482a9fdd01bd21455b396e23e4077.tar.gz
gdb-5ae3ebbae55482a9fdd01bd21455b396e23e4077.tar.bz2
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.
-rw-r--r--gdb/gdbserver/ChangeLog7
-rw-r--r--gdb/gdbserver/linux-low.c13
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)
{