From patchwork Mon Jul 20 11:35:24 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yao Qi X-Patchwork-Id: 7751 Received: (qmail 104597 invoked by alias); 20 Jul 2015 11:35:59 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 104539 invoked by uid 89); 20 Jul 2015 11:35:58 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pd0-f176.google.com Received: from mail-pd0-f176.google.com (HELO mail-pd0-f176.google.com) (209.85.192.176) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Mon, 20 Jul 2015 11:35:56 +0000 Received: by pdjr16 with SMTP id r16so102521263pdj.3 for ; Mon, 20 Jul 2015 04:35:54 -0700 (PDT) X-Received: by 10.70.44.13 with SMTP id a13mr11991407pdm.96.1437392154221; Mon, 20 Jul 2015 04:35:54 -0700 (PDT) Received: from E107787-LIN.cambridge.arm.com (gcc1-power7.osuosl.org. [140.211.15.137]) by smtp.gmail.com with ESMTPSA id db1sm21335338pdb.50.2015.07.20.04.35.52 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 20 Jul 2015 04:35:53 -0700 (PDT) From: Yao Qi X-Google-Original-From: Yao Qi To: gdb-patches@sourceware.org Subject: [PATCH 6/8] Set proc->priv->new_inferior out of linux_add_process Date: Mon, 20 Jul 2015 12:35:24 +0100 Message-Id: <1437392126-29503-7-git-send-email-yao.qi@linaro.org> In-Reply-To: <1437392126-29503-1-git-send-email-yao.qi@linaro.org> References: <1437392126-29503-1-git-send-email-yao.qi@linaro.org> X-IsSubscribed: yes 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-16 Yao Qi * 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. --- gdb/gdbserver/linux-low.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) 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) {