aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/linux-thread-db.c11
2 files changed, 13 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b572271..8319083 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2015-08-08 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * linux-thread-db.c (thread_db_get_thread_local_address): If the
+ thread was not yet discovered, use thread_from_lwp instead of
+ calling thread_db_find_new_threads_1.
+
2015-08-27 Simon Marchi <simon.marchi@ericsson.com>
* m88k-tdep.c (m88k_analyze_prologue): Fix inverted allocation
diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c
index d6bf56f..855629b 100644
--- a/gdb/linux-thread-db.c
+++ b/gdb/linux-thread-db.c
@@ -1849,13 +1849,16 @@ thread_db_get_thread_local_address (struct target_ops *ops,
struct thread_info *thread_info;
struct target_ops *beneath;
- /* If we have not discovered any threads yet, check now. */
- if (!have_threads (ptid))
- thread_db_find_new_threads_1 (ptid);
-
/* Find the matching thread. */
thread_info = find_thread_ptid (ptid);
+ /* We may not have discovered the thread yet. */
+ if (thread_info != NULL && thread_info->priv == NULL)
+ {
+ thread_from_lwp (ptid);
+ thread_info = find_thread_ptid (ptid);
+ }
+
if (thread_info != NULL && thread_info->priv != NULL)
{
td_err_e err;