diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-04-17 19:11:07 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-04-17 19:11:07 +0000 |
commit | 254f582e7e9b0f5112489bdc7700c3edb0d00a08 (patch) | |
tree | fc480d8a52530ab5239ddfe7514123c9db965ed2 /gdb/linux-thread-db.c | |
parent | 4fe85f5c276ced5f5c35f9d3ba32644e83b5dc07 (diff) | |
download | gdb-254f582e7e9b0f5112489bdc7700c3edb0d00a08.zip gdb-254f582e7e9b0f5112489bdc7700c3edb0d00a08.tar.gz gdb-254f582e7e9b0f5112489bdc7700c3edb0d00a08.tar.bz2 |
gdb/
* linux-thread-db.c (find_new_threads_callback): Exit on zero TI_TID
even if !TARGET_HAS_EXECUTION.
gdb/testsuite/
* gdb.threads/gcore-thread.exp ($core0file): New variable.
(clear __stack_user.next, clear stack_used.next)
(save a zeroed-threads corefile): New test.
Call core_load for $core0file.
(zeroed-threads cannot be listed): New test.
Diffstat (limited to 'gdb/linux-thread-db.c')
-rw-r--r-- | gdb/linux-thread-db.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c index 005a34a..2700a65 100644 --- a/gdb/linux-thread-db.c +++ b/gdb/linux-thread-db.c @@ -1335,7 +1335,7 @@ find_new_threads_callback (const td_thrhandle_t *th_p, void *data) if (ti.ti_state == TD_THR_UNKNOWN || ti.ti_state == TD_THR_ZOMBIE) return 0; /* A zombie -- ignore. */ - if (ti.ti_tid == 0 && target_has_execution) + if (ti.ti_tid == 0) { /* A thread ID of zero means that this is the main thread, but glibc has not yet initialized thread-local storage and the @@ -1347,10 +1347,13 @@ find_new_threads_callback (const td_thrhandle_t *th_p, void *data) need this glibc bug workaround. */ info->need_stale_parent_threads_check = 0; - err = info->td_thr_event_enable_p (th_p, 1); - if (err != TD_OK) - error (_("Cannot enable thread event reporting for LWP %d: %s"), - (int) ti.ti_lid, thread_db_err_str (err)); + if (target_has_execution) + { + err = info->td_thr_event_enable_p (th_p, 1); + if (err != TD_OK) + error (_("Cannot enable thread event reporting for LWP %d: %s"), + (int) ti.ti_lid, thread_db_err_str (err)); + } return 0; } |