aboutsummaryrefslogtreecommitdiff
path: root/gdb/arm-linux-nat.c
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2015-08-05 08:41:19 +0100
committerYao Qi <yao.qi@linaro.org>2015-08-05 08:41:19 +0100
commitd89fa914ad6f10cf2827df9b3b86da1a7d9ddfd8 (patch)
tree7b945bf5882667846cc11c88a986488d379dbab8 /gdb/arm-linux-nat.c
parentea546fbb602046f4681319971bc7d5044d04f116 (diff)
downloadgdb-d89fa914ad6f10cf2827df9b3b86da1a7d9ddfd8.zip
gdb-d89fa914ad6f10cf2827df9b3b86da1a7d9ddfd8.tar.gz
gdb-d89fa914ad6f10cf2827df9b3b86da1a7d9ddfd8.tar.bz2
Remove get_thread_id
This patch removes get_thread_id from aarch64-linux-nat.c, arm-linux-nat.c and xtensa-linux-nat.c. get_thread_id was added in this commit below in 2000, 41c49b06c471443d3baf2eaa2463a315f9b5edca https://sourceware.org/ml/gdb-patches/2000-04/msg00398.html which predates the ptid_t stuff added into GDB. Nowadays, lwpid of inferior_ptid is only zero when the inferior is created (in fork-child.c:fork_inferior) and its lwpid will be set after linux_nat_wait_1 gets the first event. After that, lwpid of inferior_ptid is not zero for linux-nat target, then we can use ptid_get_lwp, so this function isn't needed anymore. Even when GDB attaches to a process, the lwp of inferior_ptid isn't zero, see linux-nat.c:linux_nat_attach, /* The ptrace base target adds the main thread with (pid,0,0) format. Decorate it with lwp info. */ ptid = ptid_build (ptid_get_pid (inferior_ptid), ptid_get_pid (inferior_ptid), 0); Note that linux_nat_xfer_partial shifts lwpid to pid for inferior_ptid temperately for calling linux_ops->to_xfer_partial, but all the affected functions in this patch are not called in linux_ops->to_xfer_partial. I think we can safely remove get_thread_id for all linux native targets. Regression tested on arm-linux and aarch64-linux. Unable to build native GDB and test it on xtensa-linux. gdb: 2015-08-05 Yao Qi <yao.qi@linaro.org> * aarch64-linux-nat.c (get_thread_id): Remove. (debug_reg_change_callback): Call ptid_get_lwp instead of get_thread_id. (fetch_gregs_from_thread): Likewise. (store_gregs_to_thread): Likewise. (fetch_fpregs_from_thread): Likewise. (store_fpregs_to_thread): Likewise. (aarch64_linux_get_debug_reg_capacity): Likewise. * arm-linux-nat.c (get_thread_id): Remove. (GET_THREAD_ID): Update macro to use ptid_get_lwp. * xtensa-linux-nat.c (get_thread_id): Remove. (GET_THREAD_ID): Update macro to use ptid_get_lwp. * arm-linux-nat.c (get_thread_id): Remove. (GET_THREAD_ID): Remove. (fetch_fpregs): Call ptid_get_lwp instead of GET_THREAD_ID. (store_fpregs, fetch_regs, store_regs): Likewise. (fetch_wmmx_regs, store_wmmx_regs): Likewise. (fetch_vfp_regs, store_vfp_regs): Likewise. (arm_linux_read_description): Likewise. (arm_linux_get_hwbp_cap): Likewise. * xtensa-linux-nat.c (get_thread_id): Remove. (GET_THREAD_ID): Remove. (fetch_gregs, store_gregs): Call ptid_get_lwp instead of GET_THREAD_ID.
Diffstat (limited to 'gdb/arm-linux-nat.c')
-rw-r--r--gdb/arm-linux-nat.c37
1 files changed, 10 insertions, 27 deletions
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
index 825da4c..fb65a5d 100644
--- a/gdb/arm-linux-nat.c
+++ b/gdb/arm-linux-nat.c
@@ -66,23 +66,6 @@
extern int arm_apcs_32;
-/* On GNU/Linux, threads are implemented as pseudo-processes, in which
- case we may be tracing more than one process at a time. In that
- case, inferior_ptid will contain the main process ID and the
- individual thread (process) ID. get_thread_id () is used to get
- the thread id if it's available, and the process id otherwise. */
-
-static int
-get_thread_id (ptid_t ptid)
-{
- int tid = ptid_get_lwp (ptid);
- if (0 == tid)
- tid = ptid_get_pid (ptid);
- return tid;
-}
-
-#define GET_THREAD_ID(PTID) get_thread_id (PTID)
-
/* Get the whole floating point state of the process and store it
into regcache. */
@@ -93,7 +76,7 @@ fetch_fpregs (struct regcache *regcache)
gdb_byte fp[ARM_LINUX_SIZEOF_NWFPE];
/* Get the thread id for the ptrace call. */
- tid = GET_THREAD_ID (inferior_ptid);
+ tid = ptid_get_lwp (inferior_ptid);
/* Read the floating point state. */
if (have_ptrace_getregset == TRIBOOL_TRUE)
@@ -133,7 +116,7 @@ store_fpregs (const struct regcache *regcache)
gdb_byte fp[ARM_LINUX_SIZEOF_NWFPE];
/* Get the thread id for the ptrace call. */
- tid = GET_THREAD_ID (inferior_ptid);
+ tid = ptid_get_lwp (inferior_ptid);
/* Read the floating point state. */
if (have_ptrace_getregset == TRIBOOL_TRUE)
@@ -193,7 +176,7 @@ fetch_regs (struct regcache *regcache)
elf_gregset_t regs;
/* Get the thread id for the ptrace call. */
- tid = GET_THREAD_ID (inferior_ptid);
+ tid = ptid_get_lwp (inferior_ptid);
if (have_ptrace_getregset == TRIBOOL_TRUE)
{
@@ -223,7 +206,7 @@ store_regs (const struct regcache *regcache)
elf_gregset_t regs;
/* Get the thread id for the ptrace call. */
- tid = GET_THREAD_ID (inferior_ptid);
+ tid = ptid_get_lwp (inferior_ptid);
/* Fetch the general registers. */
if (have_ptrace_getregset == TRIBOOL_TRUE)
@@ -277,7 +260,7 @@ fetch_wmmx_regs (struct regcache *regcache)
int ret, regno, tid;
/* Get the thread id for the ptrace call. */
- tid = GET_THREAD_ID (inferior_ptid);
+ tid = ptid_get_lwp (inferior_ptid);
ret = ptrace (PTRACE_GETWMMXREGS, tid, 0, regbuf);
if (ret < 0)
@@ -306,7 +289,7 @@ store_wmmx_regs (const struct regcache *regcache)
int ret, regno, tid;
/* Get the thread id for the ptrace call. */
- tid = GET_THREAD_ID (inferior_ptid);
+ tid = ptid_get_lwp (inferior_ptid);
ret = ptrace (PTRACE_GETWMMXREGS, tid, 0, regbuf);
if (ret < 0)
@@ -351,7 +334,7 @@ fetch_vfp_regs (struct regcache *regcache)
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
/* Get the thread id for the ptrace call. */
- tid = GET_THREAD_ID (inferior_ptid);
+ tid = ptid_get_lwp (inferior_ptid);
if (have_ptrace_getregset == TRIBOOL_TRUE)
{
@@ -383,7 +366,7 @@ store_vfp_regs (const struct regcache *regcache)
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
/* Get the thread id for the ptrace call. */
- tid = GET_THREAD_ID (inferior_ptid);
+ tid = ptid_get_lwp (inferior_ptid);
if (have_ptrace_getregset == TRIBOOL_TRUE)
{
@@ -553,7 +536,7 @@ arm_linux_read_description (struct target_ops *ops)
{
elf_gregset_t gpregs;
struct iovec iov;
- int tid = GET_THREAD_ID (inferior_ptid);
+ int tid = ptid_get_lwp (inferior_ptid);
iov.iov_base = &gpregs;
iov.iov_len = sizeof (gpregs);
@@ -636,7 +619,7 @@ arm_linux_get_hwbp_cap (void)
int tid;
unsigned int val;
- tid = GET_THREAD_ID (inferior_ptid);
+ tid = ptid_get_lwp (inferior_ptid);
if (ptrace (PTRACE_GETHBPREGS, tid, 0, &val) < 0)
available = 0;
else