From: Yao Qi <yao@codesourcery.com>
To: <gdb-patches@sourceware.org>
Subject: [PATCH/gdbserver] Remove current_inferior's save/restore when call get_thread_regcache.
Date: Fri, 04 May 2012 10:52:00 -0000 [thread overview]
Message-ID: <1336128707-26498-1-git-send-email-yao@codesourcery.com> (raw)
Hi,
The current_inferior is saved and restored inside get_thread_regcache,
so it is not necessary to save and restore current_inferior out side
of it.
Regression tested on x86_64-linux. OK to apply?
gdb/gdbserver:
2012-05-04 Yao Qi <yao@codesourcery.com>
* linux-low.c (get_pc, linux_wait_for_lwp): Don't save and restore
current_inferior when call get_thread_cache.
* proc-service.c (ps_lgetregs): Likewise.
---
gdb/gdbserver/linux-low.c | 12 ++----------
gdb/gdbserver/proc-service.c | 7 +------
2 files changed, 3 insertions(+), 16 deletions(-)
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index 751867b..64d314c 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -503,23 +503,18 @@ handle_extended_wait (struct lwp_info *event_child, int wstat)
static CORE_ADDR
get_pc (struct lwp_info *lwp)
{
- struct thread_info *saved_inferior;
struct regcache *regcache;
CORE_ADDR pc;
if (the_low_target.get_pc == NULL)
return 0;
- saved_inferior = current_inferior;
- current_inferior = get_lwp_thread (lwp);
-
- regcache = get_thread_regcache (current_inferior, 1);
+ regcache = get_thread_regcache (get_lwp_thread (lwp), 1);
pc = (*the_low_target.get_pc) (regcache);
if (debug_threads)
fprintf (stderr, "pc is 0x%lx\n", (long) pc);
- current_inferior = saved_inferior;
return pc;
}
@@ -1425,15 +1420,12 @@ retry:
&& WIFSTOPPED (*wstatp)
&& the_low_target.get_pc != NULL)
{
- struct thread_info *saved_inferior = current_inferior;
struct regcache *regcache;
CORE_ADDR pc;
- current_inferior = get_lwp_thread (child);
- regcache = get_thread_regcache (current_inferior, 1);
+ regcache = get_thread_regcache (get_lwp_thread (child), 1);
pc = (*the_low_target.get_pc) (regcache);
fprintf (stderr, "linux_wait_for_lwp: pc is 0x%lx\n", (long) pc);
- current_inferior = saved_inferior;
}
return child;
diff --git a/gdb/gdbserver/proc-service.c b/gdb/gdbserver/proc-service.c
index 5584dab..d4c17a2 100644
--- a/gdb/gdbserver/proc-service.c
+++ b/gdb/gdbserver/proc-service.c
@@ -99,20 +99,15 @@ ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_t gregset)
{
#ifdef HAVE_REGSETS
struct lwp_info *lwp;
- struct thread_info *reg_inferior, *save_inferior;
struct regcache *regcache;
lwp = find_lwp_pid (pid_to_ptid (lwpid));
if (lwp == NULL)
return PS_ERR;
- reg_inferior = get_lwp_thread (lwp);
- save_inferior = current_inferior;
- current_inferior = reg_inferior;
- regcache = get_thread_regcache (current_inferior, 1);
+ regcache = get_thread_regcache (get_lwp_thread (lwp), 1);
gregset_info ()->fill_function (regcache, gregset);
- current_inferior = save_inferior;
return PS_OK;
#else
return PS_ERR;
--
1.7.0.4
next reply other threads:[~2012-05-04 10:52 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-04 10:52 Yao Qi [this message]
2012-05-04 12:32 ` Pedro Alves
2012-05-04 13:08 ` Yao Qi
2012-05-04 13:45 ` Pedro Alves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1336128707-26498-1-git-send-email-yao@codesourcery.com \
--to=yao@codesourcery.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox