about summary refs log tree commit diff
path: root/linuxthreads_db
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads_db')
-rw-r--r--linuxthreads_db/ChangeLog3
-rw-r--r--linuxthreads_db/td_ta_thr_iter.c12
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)