diff options
author | Kevin Buettner <kevinb@redhat.com> | 2016-05-04 15:21:12 -0700 |
---|---|---|
committer | Kevin Buettner <kevinb@redhat.com> | 2017-09-21 11:19:10 -0700 |
commit | e04ee09e24563f013c35cdebd7e9de3092b99b83 (patch) | |
tree | eaf075d4f3044a2217cf7a6f4aeb9c2afb99e3ac /gdb/thread.c | |
parent | f557a88ab120b75ddcc507c03d565c28e5f88c16 (diff) | |
download | gdb-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.c | 12 |
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. * |