diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-08-08 06:38:19 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-08-08 06:38:19 +0000 |
commit | 9b1b33cea3ac0ae4eec04e86b1b489aeb5d2f552 (patch) | |
tree | a349b89e70f8e5cfa79ca7557db72819750adc81 /linuxthreads_db | |
parent | f70b0ea2c7f8a5b3d6450c4e88f8db91ad06048b (diff) | |
download | glibc-9b1b33cea3ac0ae4eec04e86b1b489aeb5d2f552.tar glibc-9b1b33cea3ac0ae4eec04e86b1b489aeb5d2f552.tar.gz glibc-9b1b33cea3ac0ae4eec04e86b1b489aeb5d2f552.tar.bz2 glibc-9b1b33cea3ac0ae4eec04e86b1b489aeb5d2f552.zip |
Update.
* elf/dl-load.c (_dl_map_object_from_fd): Add missing \n in error
message.
Diffstat (limited to 'linuxthreads_db')
-rw-r--r-- | linuxthreads_db/ChangeLog | 8 | ||||
-rw-r--r-- | linuxthreads_db/td_symbol_list.c | 3 | ||||
-rw-r--r-- | linuxthreads_db/td_thr_event_enable.c | 28 | ||||
-rw-r--r-- | linuxthreads_db/thread_dbP.h | 1 |
4 files changed, 32 insertions, 8 deletions
diff --git a/linuxthreads_db/ChangeLog b/linuxthreads_db/ChangeLog index 6cd9757643..dd87f89d76 100644 --- a/linuxthreads_db/ChangeLog +++ b/linuxthreads_db/ChangeLog @@ -1,3 +1,11 @@ +2002-08-07 Ulrich Drepper <drepper@redhat.com> + + * thread_dbP.h: Define LINUXTHREADS_INITIAL_REPORT_EVENTS. + * td_thr_event_enable.c (td_thr_event_enable): If th->th_unique is + null write to __linuxthreads_initial_report_events. + * td_symbol_list.c (symbol_list_arr): Add + __linuxthreads_initial_report_events. + 2002-07-16 Ulrich Drepper <drepper@redhat.com> * td_thr_clear_event.c: Yet more changes to help with TLS-enabled diff --git a/linuxthreads_db/td_symbol_list.c b/linuxthreads_db/td_symbol_list.c index e64d298f97..813261875c 100644 --- a/linuxthreads_db/td_symbol_list.c +++ b/linuxthreads_db/td_symbol_list.c @@ -1,5 +1,5 @@ /* Return list of symbols the library can request. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001. @@ -36,6 +36,7 @@ static const char *symbol_list_arr[] = [LINUXTHREADS_CREATE_EVENT] = "__linuxthreads_create_event", [LINUXTHREADS_DEATH_EVENT] = "__linuxthreads_death_event", [LINUXTHREADS_REAP_EVENT] = "__linuxthreads_reap_event", + [LINUXTHREADS_INITIAL_REPORT_EVENTS] = "__linuxthreads_initial_report_events", [NUM_MESSAGES] = NULL }; diff --git a/linuxthreads_db/td_thr_event_enable.c b/linuxthreads_db/td_thr_event_enable.c index b6ec4d0c2f..407f3fc44a 100644 --- a/linuxthreads_db/td_thr_event_enable.c +++ b/linuxthreads_db/td_thr_event_enable.c @@ -31,13 +31,27 @@ td_thr_event_enable (th, onoff) LOG ("td_thr_event_enable"); /* Write the new value into the thread data structure. */ - if (th->th_unique != NULL) - if (ps_pdwrite (th->th_ta_p->ph, - ((char *) th->th_unique - + offsetof (struct _pthread_descr_struct, - p_report_events)), - &onoff, sizeof (int)) != PS_OK) - return TD_ERR; /* XXX Other error value? */ + if (th->th_unique == NULL) + { + psaddr_t addr; + + if (td_lookup (th->th_ta_p->ph, LINUXTHREADS_INITIAL_REPORT_EVENTS, + &addr) != PS_OK) + /* Cannot read the symbol. This should not happen. */ + return TD_ERR; + + if (ps_pdwrite (th->th_ta_p->ph, addr, &onoff, sizeof (int)) != PS_OK) + return TD_ERR; + + return TD_OK; + } + + if (ps_pdwrite (th->th_ta_p->ph, + ((char *) th->th_unique + + offsetof (struct _pthread_descr_struct, + p_report_events)), + &onoff, sizeof (int)) != PS_OK) + return TD_ERR; /* XXX Other error value? */ return TD_OK; } diff --git a/linuxthreads_db/thread_dbP.h b/linuxthreads_db/thread_dbP.h index a64a5b32aa..85222abdf3 100644 --- a/linuxthreads_db/thread_dbP.h +++ b/linuxthreads_db/thread_dbP.h @@ -23,6 +23,7 @@ enum LINUXTHREADS_CREATE_EVENT, LINUXTHREADS_DEATH_EVENT, LINUXTHREADS_REAP_EVENT, + LINUXTHREADS_INITIAL_REPORT_EVENTS, NUM_MESSAGES }; |