aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver/linux-low.h
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2006-10-17 16:02:27 +0000
committerDaniel Jacobowitz <drow@false.org>2006-10-17 16:02:27 +0000
commitdae5f5cf4b47e0c8b81c090316093ecf5777f770 (patch)
tree7a7f4edbdd4892beda9c8424dc6445c998aeb2a4 /gdb/gdbserver/linux-low.h
parent5bd2f6e2a6179014300f75f86231e0e37736eb6b (diff)
downloadgdb-dae5f5cf4b47e0c8b81c090316093ecf5777f770.zip
gdb-dae5f5cf4b47e0c8b81c090316093ecf5777f770.tar.gz
gdb-dae5f5cf4b47e0c8b81c090316093ecf5777f770.tar.bz2
* acinclude.m4 (SRV_CHECK_TLS_GET_ADDR): New.
* configure.ac: Use it. Define HAVE_TD_THR_TLS_GET_ADDR. * config.in, configure: Regenerated. * inferiors.c (gdb_id_to_thread): New function. (gdb_id_to_thread_id): Use it. * linux-low.c (linux_target_ops): Use thread_db_get_tls_address. * linux-low.h (struct process_info): Add th member. (thread_db_get_tls_address): New prototype. * remote-utils.c (decode_address): Make non-static. * server.c (handle_query): Handle qGetTLSAddr. * server.h (gdb_id_to_thread, decode_address): New prototypes. * target.h (struct target_ops): Add get_tls_address. * thread-db.c (maybe_attach_thread): Save the thread handle. (thread_db_get_tls_address): New.
Diffstat (limited to 'gdb/gdbserver/linux-low.h')
-rw-r--r--gdb/gdbserver/linux-low.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/gdbserver/linux-low.h b/gdb/gdbserver/linux-low.h
index d090b31..53c5934 100644
--- a/gdb/gdbserver/linux-low.h
+++ b/gdb/gdbserver/linux-low.h
@@ -18,6 +18,10 @@
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
+#ifdef HAVE_THREAD_DB_H
+#include <thread_db.h>
+#endif
+
#ifdef HAVE_LINUX_REGSETS
typedef void (*regset_fill_func) (void *);
typedef void (*regset_store_func) (const void *);
@@ -124,6 +128,11 @@ struct process_info
and then processed and cleared in linux_resume_one_process. */
struct thread_resume *resume;
+
+#ifdef HAVE_THREAD_DB_H
+ /* The thread handle, used for e.g. TLS access. */
+ td_thrhandle_t th;
+#endif
};
extern struct inferior_list all_processes;
@@ -131,3 +140,5 @@ extern struct inferior_list all_processes;
void linux_attach_lwp (unsigned long pid, unsigned long tid);
int thread_db_init (void);
+int thread_db_get_tls_address (struct thread_info *thread, CORE_ADDR offset,
+ CORE_ADDR load_module, CORE_ADDR *address);