diff options
Diffstat (limited to 'linuxthreads_db')
-rw-r--r-- | linuxthreads_db/ChangeLog | 3 | ||||
-rw-r--r-- | linuxthreads_db/td_ta_thr_iter.c | 12 |
2 files changed, 9 insertions, 6 deletions
diff --git a/linuxthreads_db/ChangeLog b/linuxthreads_db/ChangeLog index 5721a01905..32b06d0d47 100644 --- a/linuxthreads_db/ChangeLog +++ b/linuxthreads_db/ChangeLog @@ -1,5 +1,8 @@ 1999-11-12 Ulrich Drepper <drepper@cygnus.com> + * td_ta_thr_iter.c: Fix loop starting point over all but main and + manager thread. + * td_ta_thr_iter.c: Read descriptors for main and manager thread special since after this we can assume that no new threads will be created anymore (at least in the gdb implementation). diff --git a/linuxthreads_db/td_ta_thr_iter.c b/linuxthreads_db/td_ta_thr_iter.c index 8cb8c63427..5b316516d1 100644 --- a/linuxthreads_db/td_ta_thr_iter.c +++ b/linuxthreads_db/td_ta_thr_iter.c @@ -30,11 +30,6 @@ handle_descr (const td_thragent_t *ta, td_thr_iter_f *callback, size_t sizeof_descr = ta->sizeof_descr; td_thrhandle_t th; -#ifdef ALL_THREADS_STOPPED - /* First count this active thread. */ - --num; -#endif - if (ps_pdread (ta->ph, descr, &pds, sizeof_descr) != PS_OK) return TD_ERR; /* XXX Other error value? */ @@ -129,9 +124,14 @@ td_ta_thr_iter (const td_thragent_t *ta, td_thr_iter_f *callback, #endif /* Now get all descriptors, one after the other. */ - for (cnt = 0; cnt < pthread_threads_max && num > 0; ++cnt) + for (cnt = 2; cnt < pthread_threads_max && num > 0; ++cnt) if (phc[cnt].h_descr != NULL) { +#ifdef ALL_THREADS_STOPPED + /* First count this active thread. */ + --num; +#endif + result = handle_descr (ta, callback, cbdata_p, state, ti_pri, cnt, phc[cnt].h_descr); if (result != TD_OK) |