Fix regression revealed by corethreads.exp
Commit Message
This patch fixes a regression introduced by:
https://sourceware.org/ml/gdb-patches/2015-12/msg00192.html
We can't use thread_from_lwp with core files. As mentioned in a comment,
td_ta_map_lwp2thr uses ps_get_thread_area, but we can't use that
currently on core targets, as it uses ptrace directly.
Use directly record_thread instead.
This fixes :
PASS -> FAIL: gdb.threads/corethreads.exp: thread0 found
PASS -> FAIL: gdb.threads/corethreads.exp: thread1 found
gdb/ChangeLog:
* linux-thread-db.c (find_new_threads_callback): Use record_thread.
---
gdb/linux-thread-db.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On 12/10/2015 07:14 PM, Antoine Tremblay wrote:
> This patch fixes a regression introduced by:
> https://sourceware.org/ml/gdb-patches/2015-12/msg00192.html
>
> We can't use thread_from_lwp with core files. As mentioned in a comment,
> td_ta_map_lwp2thr uses ps_get_thread_area, but we can't use that
> currently on core targets, as it uses ptrace directly.
>
> Use directly record_thread instead.
>
> This fixes :
> PASS -> FAIL: gdb.threads/corethreads.exp: thread0 found
> PASS -> FAIL: gdb.threads/corethreads.exp: thread1 found
>
> gdb/ChangeLog:
>
> * linux-thread-db.c (find_new_threads_callback): Use record_thread.
OK.
Thanks,
Pedro Alves
On 12/10/2015 02:34 PM, Pedro Alves wrote:
> On 12/10/2015 07:14 PM, Antoine Tremblay wrote:
>> This patch fixes a regression introduced by:
>> https://sourceware.org/ml/gdb-patches/2015-12/msg00192.html
>>
>> We can't use thread_from_lwp with core files. As mentioned in a comment,
>> td_ta_map_lwp2thr uses ps_get_thread_area, but we can't use that
>> currently on core targets, as it uses ptrace directly.
>>
>> Use directly record_thread instead.
>>
>> This fixes :
>> PASS -> FAIL: gdb.threads/corethreads.exp: thread0 found
>> PASS -> FAIL: gdb.threads/corethreads.exp: thread1 found
>>
>> gdb/ChangeLog:
>>
>> * linux-thread-db.c (find_new_threads_callback): Use record_thread.
>
> OK.
>
Pushed in.
Thanks,
Antoine
@@ -1226,7 +1226,7 @@ find_new_threads_callback (const td_thrhandle_t *th_p, void *data)
ptid = ptid_build (info->pid, ti.ti_lid, 0);
tp = find_thread_ptid (ptid);
if (tp == NULL || tp->priv == NULL)
- thread_from_lwp (ptid);
+ record_thread (info, tp, ptid, th_p, &ti);
return 0;
}