diff options
author | Paul Pluzhnikov <ppluzhnikov@google.com> | 2009-11-12 00:47:39 +0000 |
---|---|---|
committer | Paul Pluzhnikov <ppluzhnikov@google.com> | 2009-11-12 00:47:39 +0000 |
commit | 21e1bee4d23dc4a91ccccd69947fc109b4312230 (patch) | |
tree | 8ce2297a06e397c09e49b88ba58f8be8d8b53116 /gdb/gdbserver/thread-db.c | |
parent | 20406f4ad3a44ead30dd314fb456094567c6ec70 (diff) | |
download | gdb-21e1bee4d23dc4a91ccccd69947fc109b4312230.zip gdb-21e1bee4d23dc4a91ccccd69947fc109b4312230.tar.gz gdb-21e1bee4d23dc4a91ccccd69947fc109b4312230.tar.bz2 |
gdb/ChangeLog:
2009-11-11 Paul Pluzhnikov <ppluzhnikov@google.com>
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 <ppluzhnikov@google.com>
PR gdb/10838
* thread-db.c (thread_db_free): Call td_ta_clear_event.
Diffstat (limited to 'gdb/gdbserver/thread-db.c')
-rw-r--r-- | gdb/gdbserver/thread-db.c | 17 |
1 files changed, 17 insertions, 0 deletions
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 */ |