From ca08a94cf08890f7a3b3dd074d5b42a09ccd868e Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 18 Sep 2013 14:47:51 +0000 Subject: Subject: [PATCH] [Hurd/gnu-nat.c] Use ptid_t.lwpid to store thread ids instead of ptid_t.tid. In preparation for reusing gnu-nat.c in gdbserver, switch to storing thread ids in the lwpid field of ptid_t rather than in the tid field. The Hurd's thread model is 1:1, so it doesn't feel wrong anyway. gdb/ 2013-09-18 Pedro Alves * gnu-nat.c (inf_validate_procs, gnu_wait, gnu_resume) (gnu_create_inferior) (gnu_attach, gnu_thread_alive, gnu_pid_to_str, cur_thread) (set_sig_thread_cmd): Use the lwpid field of ptids to store/extract thread ids instead of the tid field. * i386gnu-nat.c (gnu_fetch_registers): Adjust. --- gdb/ChangeLog | 9 +++++++++ gdb/gnu-nat.c | 24 ++++++++++++------------ gdb/i386gnu-nat.c | 4 ++-- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7ab79da..4dd873a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2013-09-18 Pedro Alves + + * gnu-nat.c (inf_validate_procs, gnu_wait, gnu_resume) + (gnu_create_inferior) + (gnu_attach, gnu_thread_alive, gnu_pid_to_str, cur_thread) + (set_sig_thread_cmd): Use the lwpid field of ptids to + store/extract thread ids instead of the tid field. + * i386gnu-nat.c (gnu_fetch_registers): Adjust. + 2013-09-18 Andrew Burgess * infcmd.c (default_print_one_register_info): Add detection of diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c index fa55b10..b4f99f8 100644 --- a/gdb/gnu-nat.c +++ b/gdb/gnu-nat.c @@ -1083,7 +1083,7 @@ inf_validate_procs (struct inf *inf) last = thread; proc_debug (thread, "new thread: %d", threads[i]); - ptid = ptid_build (inf->pid, 0, thread->tid); + ptid = ptid_build (inf->pid, thread->tid, 0); /* Tell GDB's generic thread code. */ @@ -1613,17 +1613,17 @@ rewait: thread = inf->wait.thread; if (thread) - ptid = ptid_build (inf->pid, 0, thread->tid); + ptid = ptid_build (inf->pid, thread->tid, 0); else if (ptid_equal (ptid, minus_one_ptid)) thread = inf_tid_to_thread (inf, -1); else - thread = inf_tid_to_thread (inf, ptid_get_tid (ptid)); + thread = inf_tid_to_thread (inf, ptid_get_lwp (ptid)); if (!thread || thread->port == MACH_PORT_NULL) { /* TID is dead; try and find a new thread. */ if (inf_update_procs (inf) && inf->threads) - ptid = ptid_build (inf->pid, 0, inf->threads->tid); /* The first + ptid = ptid_build (inf->pid, inf->threads->tid, 0); /* The first available thread. */ else @@ -2022,7 +2022,7 @@ gnu_resume (struct target_ops *ops, else /* Just allow a single thread to run. */ { - struct proc *thread = inf_tid_to_thread (inf, ptid_get_tid (ptid)); + struct proc *thread = inf_tid_to_thread (inf, ptid_get_lwp (ptid)); if (!thread) error (_("Can't run single thread id %s: no such thread!"), @@ -2033,7 +2033,7 @@ gnu_resume (struct target_ops *ops, if (step) { - step_thread = inf_tid_to_thread (inf, ptid_get_tid (ptid)); + step_thread = inf_tid_to_thread (inf, ptid_get_lwp (ptid)); if (!step_thread) warning (_("Can't step thread id %s: no such thread."), target_pid_to_str (ptid)); @@ -2133,7 +2133,7 @@ gnu_create_inferior (struct target_ops *ops, /* We now have thread info. */ thread_change_ptid (inferior_ptid, - ptid_build (inf->pid, 0, inf_pick_first_thread ())); + ptid_build (inf->pid, inf_pick_first_thread (), 0)); startup_inferior (inf->pending_execs); @@ -2190,7 +2190,7 @@ gnu_attach (struct target_ops *ops, char *args, int from_tty) inf_update_procs (inf); - inferior_ptid = ptid_build (pid, 0, inf_pick_first_thread ()); + inferior_ptid = ptid_build (pid, inf_pick_first_thread (), 0); /* We have to initialize the terminal settings now, since the code below might try to restore them. */ @@ -2261,7 +2261,7 @@ gnu_thread_alive (struct target_ops *ops, ptid_t ptid) { inf_update_procs (gnu_current_inf); return !!inf_tid_to_thread (gnu_current_inf, - ptid_get_tid (ptid)); + ptid_get_lwp (ptid)); } @@ -2596,7 +2596,7 @@ static char * gnu_pid_to_str (struct target_ops *ops, ptid_t ptid) { struct inf *inf = gnu_current_inf; - int tid = ptid_get_tid (ptid); + int tid = ptid_get_lwp (ptid); struct proc *thread = inf_tid_to_thread (inf, tid); if (thread) @@ -2729,7 +2729,7 @@ cur_thread (void) { struct inf *inf = cur_inf (); struct proc *thread = inf_tid_to_thread (inf, - ptid_get_tid (inferior_ptid)); + ptid_get_lwp (inferior_ptid)); if (!thread) error (_("No current thread.")); return thread; @@ -2928,7 +2928,7 @@ set_sig_thread_cmd (char *args, int from_tty) error (_("Thread ID %s not known. " "Use the \"info threads\" command to\n" "see the IDs of currently known threads."), args); - inf->signal_thread = inf_tid_to_thread (inf, ptid_get_tid (ptid)); + inf->signal_thread = inf_tid_to_thread (inf, ptid_get_lwp (ptid)); } } diff --git a/gdb/i386gnu-nat.c b/gdb/i386gnu-nat.c index 0fd8d91..2b93fee 100644 --- a/gdb/i386gnu-nat.c +++ b/gdb/i386gnu-nat.c @@ -132,7 +132,7 @@ gnu_fetch_registers (struct target_ops *ops, inf_update_procs (gnu_current_inf); thread = inf_tid_to_thread (gnu_current_inf, - ptid_get_tid (inferior_ptid)); + ptid_get_lwp (inferior_ptid)); if (!thread) error (_("Can't fetch registers from thread %s: No such thread"), target_pid_to_str (inferior_ptid)); @@ -225,7 +225,7 @@ gnu_store_registers (struct target_ops *ops, inf_update_procs (gnu_current_inf); thread = inf_tid_to_thread (gnu_current_inf, - ptid_get_tid (inferior_ptid)); + ptid_get_lwp (inferior_ptid)); if (!thread) error (_("Couldn't store registers into thread %s: No such thread"), target_pid_to_str (inferior_ptid)); -- cgit v1.1