linux-thread-db.c (record_thread): Return the created thread.
gdb/ChangeLog: * linux-thread-db.c (record_thread): Return the created thread. (thread_from_lwp): Likewise. (thread_db_get_thread_local_address): Update.
This commit is contained in:
parent
615b3f6299
commit
be550b6ed9
@ -1,3 +1,9 @@
|
||||
2015-09-18 Doug Evans <xdje42@gmail.com>
|
||||
|
||||
* linux-thread-db.c (record_thread): Return the created thread.
|
||||
(thread_from_lwp): Likewise.
|
||||
(thread_db_get_thread_local_address): Update.
|
||||
|
||||
2015-09-18 Doug Evans <xdje42@gmail.com>
|
||||
|
||||
* symtab.h (general_symbol_info) <mangled_lang>: Delete struct,
|
||||
|
@ -198,10 +198,9 @@ static void thread_db_find_new_threads_2 (ptid_t ptid, int until_no_new);
|
||||
|
||||
static void check_thread_signals (void);
|
||||
|
||||
static void record_thread (struct thread_db_info *info,
|
||||
struct thread_info *tp,
|
||||
ptid_t ptid, const td_thrhandle_t *th_p,
|
||||
const td_thrinfo_t *ti_p);
|
||||
static struct thread_info *record_thread
|
||||
(struct thread_db_info *info, struct thread_info *tp,
|
||||
ptid_t ptid, const td_thrhandle_t *th_p, const td_thrinfo_t *ti_p);
|
||||
|
||||
/* Add the current inferior to the list of processes using libpthread.
|
||||
Return a pointer to the newly allocated object that was added to
|
||||
@ -386,7 +385,7 @@ have_threads (ptid_t ptid)
|
||||
|
||||
/* Fetch the user-level thread id of PTID. */
|
||||
|
||||
static void
|
||||
static struct thread_info *
|
||||
thread_from_lwp (ptid_t ptid)
|
||||
{
|
||||
td_thrhandle_t th;
|
||||
@ -419,7 +418,7 @@ thread_from_lwp (ptid_t ptid)
|
||||
|
||||
/* Fill the cache. */
|
||||
tp = find_thread_ptid (ptid);
|
||||
record_thread (info, tp, ptid, &th, &ti);
|
||||
return record_thread (info, tp, ptid, &th, &ti);
|
||||
}
|
||||
|
||||
|
||||
@ -1287,10 +1286,10 @@ attach_thread (ptid_t ptid, const td_thrhandle_t *th_p,
|
||||
}
|
||||
|
||||
/* Record a new thread in GDB's thread list. Creates the thread's
|
||||
private info. If TP is NULL, creates a new thread. Otherwise,
|
||||
uses TP. */
|
||||
private info. If TP is NULL or TP is marked as having exited,
|
||||
creates a new thread. Otherwise, uses TP. */
|
||||
|
||||
static void
|
||||
static struct thread_info *
|
||||
record_thread (struct thread_db_info *info,
|
||||
struct thread_info *tp,
|
||||
ptid_t ptid, const td_thrhandle_t *th_p,
|
||||
@ -1304,7 +1303,7 @@ record_thread (struct thread_db_info *info,
|
||||
initialized yet. Leave private == NULL until the thread library
|
||||
has initialized. */
|
||||
if (ti_p->ti_tid == 0)
|
||||
return;
|
||||
return tp;
|
||||
|
||||
/* Construct the thread's private data. */
|
||||
priv = XCNEW (struct private_thread_info);
|
||||
@ -1333,6 +1332,8 @@ record_thread (struct thread_db_info *info,
|
||||
|
||||
if (target_has_execution)
|
||||
check_thread_signals ();
|
||||
|
||||
return tp;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1854,10 +1855,7 @@ thread_db_get_thread_local_address (struct target_ops *ops,
|
||||
|
||||
/* 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);
|
||||
}
|
||||
thread_info = thread_from_lwp (ptid);
|
||||
|
||||
if (thread_info != NULL && thread_info->priv != NULL)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user