diff options
author | Yao Qi <yao.qi@linaro.org> | 2015-07-24 14:40:34 +0100 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2015-07-24 14:40:34 +0100 |
commit | 5ae3ebbae55482a9fdd01bd21455b396e23e4077 (patch) | |
tree | 158553fc5247edac1028633bb2675bd2a50b9283 | |
parent | eb97750bce2bf37176f745636815600177fbdba8 (diff) | |
download | gdb-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/ChangeLog | 7 | ||||
-rw-r--r-- | 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) { |