forked from Imagelibrary/binutils-gdb
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.
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
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.
|
||||
|
||||
2009-11-11 Keith Seitz <keiths@redhat.com>
|
||||
|
||||
* linespec.c (lookup_prefix_sym): Lookup the symbol
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
2009-11-11 Paul Pluzhnikov <ppluzhnikov@google.com>
|
||||
|
||||
PR gdb/10838
|
||||
* thread-db.c (thread_db_free): Call td_ta_clear_event.
|
||||
|
||||
2009-11-03 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* configure.ac (i[34567]86-*): Check if we're targetting x86-64
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -141,6 +141,8 @@ struct thread_db_info
|
||||
td_event_e event, td_notify_t *ptr);
|
||||
td_err_e (*td_ta_set_event_p) (const td_thragent_t *ta,
|
||||
td_thr_events_t *event);
|
||||
td_err_e (*td_ta_clear_event_p) (const td_thragent_t *ta,
|
||||
td_thr_events_t *event);
|
||||
td_err_e (*td_ta_event_getmsg_p) (const td_thragent_t *ta,
|
||||
td_event_msg_t *msg);
|
||||
|
||||
@@ -701,6 +703,7 @@ try_thread_db_load_1 (struct thread_db_info *info)
|
||||
/* These are not essential. */
|
||||
info->td_ta_event_addr_p = dlsym (info->handle, "td_ta_event_addr");
|
||||
info->td_ta_set_event_p = dlsym (info->handle, "td_ta_set_event");
|
||||
info->td_ta_clear_event_p = dlsym (info->handle, "td_ta_clear_event");
|
||||
info->td_ta_event_getmsg_p = dlsym (info->handle, "td_ta_event_getmsg");
|
||||
info->td_thr_event_enable_p = dlsym (info->handle, "td_thr_event_enable");
|
||||
info->td_thr_tls_get_addr_p = dlsym (info->handle, "td_thr_tls_get_addr");
|
||||
@@ -907,14 +910,14 @@ thread_db_load (void)
|
||||
static void
|
||||
disable_thread_event_reporting (struct thread_db_info *info)
|
||||
{
|
||||
if (info->td_ta_set_event_p != NULL)
|
||||
if (info->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_emptyset (&events);
|
||||
info->td_ta_set_event_p (info->thread_agent, &events);
|
||||
td_event_fillset (&events);
|
||||
info->td_ta_clear_event_p (info->thread_agent, &events);
|
||||
}
|
||||
|
||||
info->td_create_bp_addr = 0;
|
||||
|
||||
Reference in New Issue
Block a user