diff options
author | Pedro Alves <palves@redhat.com> | 2009-03-31 15:23:57 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2009-03-31 15:23:57 +0000 |
commit | bad34192e56554fda247b1d0c72cfb18bc7f83bf (patch) | |
tree | 3c2b2028af0f036a6eb8b122435dd206baa0cac3 /gdb/thread.c | |
parent | e35251173842f4f5f2b4ef0337a16b14793f48e2 (diff) | |
download | gdb-bad34192e56554fda247b1d0c72cfb18bc7f83bf.zip gdb-bad34192e56554fda247b1d0c72cfb18bc7f83bf.tar.gz gdb-bad34192e56554fda247b1d0c72cfb18bc7f83bf.tar.bz2 |
* remote.c (remote_notice_new_inferior): Use ptid_is_pid. Check
if the thread's ptid without a thread id field is in the list
before calling thread_change_ptid.
(extended_remote_attach_1): In non-stop mode, do not rely on
querying the current thread, instead, query the thread list, and
select the first thread of the process.
* gdbthread.h (first_thread_of_process): Declare.
* thread.c (first_thread_of_process): Define.
Diffstat (limited to 'gdb/thread.c')
-rw-r--r-- | gdb/thread.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gdb/thread.c b/gdb/thread.c index a1617f2..0ce24c6 100644 --- a/gdb/thread.c +++ b/gdb/thread.c @@ -401,6 +401,22 @@ in_thread_list (ptid_t ptid) return 0; /* Never heard of 'im */ } +/* Finds the first thread of the inferior given by PID. If PID is -1, + return the first thread in the list. */ + +struct thread_info * +first_thread_of_process (int pid) +{ + struct thread_info *tp, *ret = NULL; + + for (tp = thread_list; tp; tp = tp->next) + if (pid == -1 || ptid_get_pid (tp->ptid) == pid) + if (ret == NULL || tp->num < ret->num) + ret = tp; + + return ret; +} + /* Print a list of thread ids currently known, and the total number of threads. To be used from within catch_errors. */ static int |