mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-13 02:45:02 +08:00
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.
This commit is contained in:
@ -48,22 +48,6 @@
|
||||
#define TRAP_HWBKPT 0x0004
|
||||
#endif
|
||||
|
||||
/* 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;
|
||||
}
|
||||
|
||||
/* Per-process data. We don't bind this to a per-inferior registry
|
||||
because of targets like x86 GNU/Linux that need to keep track of
|
||||
processes that aren't bound to any inferior (e.g., fork children,
|
||||
@ -181,7 +165,7 @@ debug_reg_change_callback (struct lwp_info *lwp, void *ptr)
|
||||
{
|
||||
struct aarch64_dr_update_callback_param *param_p
|
||||
= (struct aarch64_dr_update_callback_param *) ptr;
|
||||
int pid = get_thread_id (lwp->ptid);
|
||||
int pid = ptid_get_lwp (lwp->ptid);
|
||||
int idx = param_p->idx;
|
||||
int is_watchpoint = param_p->is_watchpoint;
|
||||
struct arch_lwp_info *info = lwp->arch_private;
|
||||
@ -266,7 +250,7 @@ fetch_gregs_from_thread (struct regcache *regcache)
|
||||
and arm. */
|
||||
gdb_static_assert (sizeof (regs) >= 18 * 4);
|
||||
|
||||
tid = get_thread_id (inferior_ptid);
|
||||
tid = ptid_get_lwp (inferior_ptid);
|
||||
|
||||
iovec.iov_base = ®s;
|
||||
if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32)
|
||||
@ -303,7 +287,7 @@ store_gregs_to_thread (const struct regcache *regcache)
|
||||
/* Make sure REGS can hold all registers contents on both aarch64
|
||||
and arm. */
|
||||
gdb_static_assert (sizeof (regs) >= 18 * 4);
|
||||
tid = get_thread_id (inferior_ptid);
|
||||
tid = ptid_get_lwp (inferior_ptid);
|
||||
|
||||
iovec.iov_base = ®s;
|
||||
if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32)
|
||||
@ -347,7 +331,7 @@ fetch_fpregs_from_thread (struct regcache *regcache)
|
||||
and arm. */
|
||||
gdb_static_assert (sizeof regs >= VFP_REGS_SIZE);
|
||||
|
||||
tid = get_thread_id (inferior_ptid);
|
||||
tid = ptid_get_lwp (inferior_ptid);
|
||||
|
||||
iovec.iov_base = ®s;
|
||||
|
||||
@ -394,7 +378,7 @@ store_fpregs_to_thread (const struct regcache *regcache)
|
||||
/* Make sure REGS can hold all VFP registers contents on both aarch64
|
||||
and arm. */
|
||||
gdb_static_assert (sizeof regs >= VFP_REGS_SIZE);
|
||||
tid = get_thread_id (inferior_ptid);
|
||||
tid = ptid_get_lwp (inferior_ptid);
|
||||
|
||||
iovec.iov_base = ®s;
|
||||
|
||||
|
Reference in New Issue
Block a user