From f99580795314fd943996662e6d2fb63929e88d4c Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 13 Dec 2002 09:45:50 +0000 Subject: [PATCH] 2002-12-12 Roland McGrath * td_ta_thr_iter.c (iterate_thread_list): Handle special case of uninitialized __stack_user (zeros), hard-wire just the main thread. --- nptl_db/td_ta_thr_iter.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nptl_db/td_ta_thr_iter.c b/nptl_db/td_ta_thr_iter.c index 87fec01..68b5427 100644 --- a/nptl_db/td_ta_thr_iter.c +++ b/nptl_db/td_ta_thr_iter.c @@ -38,6 +38,16 @@ iterate_thread_list (const td_thragent_t *ta, td_thr_iter_f *callback, if (ps_pdread (ta->ph, head, &list, sizeof (list_t)) != PS_OK) return TD_ERR; /* XXX Other error value? */ + if (list.next == 0 && list.prev == 0 && head == ta->stack_user) + { + /* __pthread_initialize_minimal has not run. + There is just the main thread to return. */ + td_thrhandle_t th; + td_err_e err = td_ta_map_lwp2thr (ta, ps_getpid (ta->ph), &th); + return (err != TD_OK ? err + : callback (&th, cbdata_p) != 0 ? TD_DBERR : TD_OK); + } + while (list.next != head) { psaddr_t addr = ((psaddr_t) list.next -- 2.7.4