From 21e1bee4d23dc4a91ccccd69947fc109b4312230 Mon Sep 17 00:00:00 2001 From: Paul Pluzhnikov Date: Thu, 12 Nov 2009 00:47:39 +0000 Subject: gdb/ChangeLog: 2009-11-11 Paul Pluzhnikov PR gdb/10838 * linux-thread-db.c (thread_db_info): New member. (disable_thread_event_reporting): Call td_ta_clear_event. gdbserver/ChangeLog: 2009-11-11 Paul Pluzhnikov PR gdb/10838 * thread-db.c (thread_db_free): Call td_ta_clear_event. --- gdb/gdbserver/thread-db.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'gdb/gdbserver/thread-db.c') diff --git a/gdb/gdbserver/thread-db.c b/gdb/gdbserver/thread-db.c index 06dfe35..8af0539 100644 --- a/gdb/gdbserver/thread-db.c +++ b/gdb/gdbserver/thread-db.c @@ -759,6 +759,19 @@ thread_db_free (struct process_info *proc) { #ifndef USE_LIBTHREAD_DB_DIRECTLY td_err_e (*td_ta_delete_p) (td_thragent_t *); + td_err_e (*td_ta_clear_event_p) (const td_thragent_t *ta, + td_thr_events_t *event); + + td_ta_clear_event_p = dlsym (thread_db->handle, "td_ta_clear_event"); + if (td_ta_clear_event_p != NULL) + { + td_thr_events_t events; + + /* Set the process wide mask saying we aren't interested in any + events anymore. */ + td_event_fillset (&events); + (*td_ta_clear_event_p) (thread_db->thread_agent, &events); + } td_ta_delete_p = dlsym (thread_db->handle, "td_ta_delete"); if (td_ta_delete_p != NULL) @@ -766,6 +779,10 @@ thread_db_free (struct process_info *proc) dlclose (thread_db->handle); #else + td_thd_events_t events; + + td_event_fillset (&events); + td_ta_clear_event (thread_db->thread_agent, &events); td_ta_delete (thread_db->thread_agent); #endif /* USE_LIBTHREAD_DB_DIRECTLY */ -- cgit v1.1