aboutsummaryrefslogtreecommitdiff
path: root/gdb/thread.c
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2016-05-04 15:21:12 -0700
committerKevin Buettner <kevinb@redhat.com>2017-09-21 11:19:10 -0700
commite04ee09e24563f013c35cdebd7e9de3092b99b83 (patch)
treeeaf075d4f3044a2217cf7a6f4aeb9c2afb99e3ac /gdb/thread.c
parentf557a88ab120b75ddcc507c03d565c28e5f88c16 (diff)
downloadgdb-e04ee09e24563f013c35cdebd7e9de3092b99b83.zip
gdb-e04ee09e24563f013c35cdebd7e9de3092b99b83.tar.gz
gdb-e04ee09e24563f013c35cdebd7e9de3092b99b83.tar.bz2
Add target method for converting thread handle to thread_info struct pointer
This patch adds a target method named `to_thread_handle_to_thread_info'. It is intended to map a thread library specific thread handle (such as pthread_t for the pthread library) to the corresponding GDB internal thread_info struct (pointer). An implementation is provided for Linux pthreads; see linux-thread-db.c. gdb/ChangeLog: * target.h (struct target_ops): Add to_thread_handle_to_thread_info. (target_thread_handle_to_thread_info): Declare. * target.c (target_thread_handle_to_thread_info): New function. * target-delegates.c: Regenerate. * gdbthread.h (find_thread_by_handle): Declare. * thread.c (find_thread_by_handle): New function. * linux-thread-db.c (thread_db_thread_handle_to_thread_info): New function. (init_thread_db_ops): Register thread_db_thread_handle_to_thread_info.
Diffstat (limited to 'gdb/thread.c')
-rw-r--r--gdb/thread.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/thread.c b/gdb/thread.c
index 2539d43..f447a96 100644
--- a/gdb/thread.c
+++ b/gdb/thread.c
@@ -519,6 +519,7 @@ find_thread_id (struct inferior *inf, int thr_num)
}
/* Find a thread_info by matching PTID. */
+
struct thread_info *
find_thread_ptid (ptid_t ptid)
{
@@ -531,6 +532,17 @@ find_thread_ptid (ptid_t ptid)
return NULL;
}
+/* See gdbthread.h. */
+
+struct thread_info *
+find_thread_by_handle (struct value *thread_handle, struct inferior *inf)
+{
+ return target_thread_handle_to_thread_info
+ (value_contents_all (thread_handle),
+ TYPE_LENGTH (value_type (thread_handle)),
+ inf);
+}
+
/*
* Thread iterator function.
*