aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads_db
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads_db')
-rw-r--r--linuxthreads_db/ChangeLog8
-rw-r--r--linuxthreads_db/td_ta_thr_iter.c2
-rw-r--r--linuxthreads_db/td_thr_event_enable.c1
-rw-r--r--linuxthreads_db/td_thr_getfpregs.c6
-rw-r--r--linuxthreads_db/td_thr_getgregs.c7
5 files changed, 23 insertions, 1 deletions
diff --git a/linuxthreads_db/ChangeLog b/linuxthreads_db/ChangeLog
index 774afe6..1d1f8d7 100644
--- a/linuxthreads_db/ChangeLog
+++ b/linuxthreads_db/ChangeLog
@@ -1,3 +1,11 @@
+2002-07-15 Ulrich Drepper <drepper@redhat.com>
+
+ * td_ta_thr_iter.c: Some more changes to enable using TLS-enabled
+ libpthread.
+ * td_thr_event_enable.c: Likewise.
+ * td_thr_getfpregs.c: Likewise.
+ * td_thr_getgregs.c: Likewise.
+
2002-07-14 Ulrich Drepper <drepper@redhat.com>
* td_ta_map_id2thr.c: Begin fixing implementation for libpthread with
diff --git a/linuxthreads_db/td_ta_thr_iter.c b/linuxthreads_db/td_ta_thr_iter.c
index 9777112..ee83c82 100644
--- a/linuxthreads_db/td_ta_thr_iter.c
+++ b/linuxthreads_db/td_ta_thr_iter.c
@@ -47,7 +47,7 @@ handle_descr (const td_thragent_t *ta, td_thr_iter_f *callback,
p_userstack but this should not be necessary here. */
th.th_ta_p = (td_thragent_t *) ta;
- th.th_unique = &pds;
+ th.th_unique = NULL;
if (callback (&th, cbdata_p) != 0)
return TD_DBERR;
diff --git a/linuxthreads_db/td_thr_event_enable.c b/linuxthreads_db/td_thr_event_enable.c
index 52404e5..d6ec2a9 100644
--- a/linuxthreads_db/td_thr_event_enable.c
+++ b/linuxthreads_db/td_thr_event_enable.c
@@ -31,6 +31,7 @@ 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)),
diff --git a/linuxthreads_db/td_thr_getfpregs.c b/linuxthreads_db/td_thr_getfpregs.c
index b453cc0..ea02760 100644
--- a/linuxthreads_db/td_thr_getfpregs.c
+++ b/linuxthreads_db/td_thr_getfpregs.c
@@ -28,6 +28,12 @@ td_thr_getfpregs (const td_thrhandle_t *th, prfpregset_t *regset)
LOG ("td_thr_getfpregs");
+ if (th->th_unique == NULL)
+ {
+ memset (regset, '\0', sizeof (*regset));
+ return TD_OK;
+ }
+
/* We have to get the state and the PID for this thread. */
if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds,
sizeof (struct _pthread_descr_struct)) != PS_OK)
diff --git a/linuxthreads_db/td_thr_getgregs.c b/linuxthreads_db/td_thr_getgregs.c
index 462a1a1..6f00677 100644
--- a/linuxthreads_db/td_thr_getgregs.c
+++ b/linuxthreads_db/td_thr_getgregs.c
@@ -28,6 +28,13 @@ td_thr_getgregs (const td_thrhandle_t *th, prgregset_t gregs)
LOG ("td_thr_getgregs");
+ if (th->th_unique == NULL)
+ {
+ /* No data yet. */
+ memset (gregs, '\0', sizeof (prgregset_t));
+ return TD_OK;
+ }
+
/* We have to get the state and the PID for this thread. */
if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds,
sizeof (struct _pthread_descr_struct)) != PS_OK)