diff options
-rw-r--r-- | linuxthreads/ChangeLog | 5 | ||||
-rw-r--r-- | linuxthreads/pthread.c | 1 | ||||
-rw-r--r-- | linuxthreads_db/ChangeLog | 6 | ||||
-rw-r--r-- | linuxthreads_db/proc_service.h | 2 | ||||
-rw-r--r-- | linuxthreads_db/td_thr_get_info.c | 2 |
5 files changed, 15 insertions, 1 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index a670e9f..2a69af7 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,8 @@ +1999-11-08 Ulrich Drepper <drepper@cygnus.com> + + * pthread.c (__pthread_initialize_manager): Initialize + __pthread_manager_thread.p_tid. + 1999-11-02 Ulrich Drepper <drepper@cygnus.com> * internals.h: Declare __pthread_last_event. diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c index 5296c1e..ab1a0f1 100644 --- a/linuxthreads/pthread.c +++ b/linuxthreads/pthread.c @@ -398,6 +398,7 @@ int __pthread_initialize_manager(void) } __pthread_manager_request = manager_pipe[1]; /* writing end */ __pthread_manager_reader = manager_pipe[0]; /* reading end */ + __pthread_manager_thread.p_tid = 2* PTHREAD_THREADS_MAX + 1; __pthread_manager_thread.p_pid = pid; /* Make gdb aware of new thread manager */ if (__pthread_threads_debug && __pthread_sig_debug > 0) diff --git a/linuxthreads_db/ChangeLog b/linuxthreads_db/ChangeLog index f2286c9..f450d48 100644 --- a/linuxthreads_db/ChangeLog +++ b/linuxthreads_db/ChangeLog @@ -1,3 +1,9 @@ +1999-11-08 Ulrich Drepper <drepper@cygnus.com> + + * td_thr_get_info.c: Make sure ti_lid is never zero. + + * proc_service.h: Add ps_getpid prototype. + 1999-11-03 Ulrich Drepper <drepper@cygnus.com> * thread_dbP.h (ta_ok): New function. diff --git a/linuxthreads_db/proc_service.h b/linuxthreads_db/proc_service.h index 108a866..8907b47 100644 --- a/linuxthreads_db/proc_service.h +++ b/linuxthreads_db/proc_service.h @@ -59,3 +59,5 @@ extern ps_err_e ps_lgetfpregs(struct ps_prochandle *, lwpid_t, prfpregset_t *); extern ps_err_e ps_lsetfpregs(struct ps_prochandle *, lwpid_t, const prfpregset_t *); + +extern pid_t ps_getpid (struct ps_prochandle *); diff --git a/linuxthreads_db/td_thr_get_info.c b/linuxthreads_db/td_thr_get_info.c index 21f9f68..25ad340 100644 --- a/linuxthreads_db/td_thr_get_info.c +++ b/linuxthreads_db/td_thr_get_info.c @@ -64,7 +64,7 @@ td_thr_get_info (const td_thrhandle_t *th, td_thrinfo_t *infop) } /* Initialization which are the same in both cases. */ - infop->ti_lid = pds.p_pid; + infop->ti_lid = pds.p_pid ?: ps_getpid (th->th_ta_p->ph); infop->ti_ta_p = th->th_ta_p; infop->ti_startfunc = pds.p_start_args.start_routine; memcpy (&infop->ti_events, &pds.p_eventbuf.eventmask, |