Ejemplo n.º 1
0
//--------------------------------------------------------------------------
void linux_debmod_t::tdb_delete(void)
{
  if ( ta != NULL )
  {
    td_ta_delete(ta);
    ta = NULL;
  }
}
Ejemplo n.º 2
0
// read thread_info using libthread_db
bool read_thread_info(struct ps_prochandle* ph, thread_info_callback cb) {
  struct thread_db_client_data mydata;
  td_thragent_t* thread_agent = NULL;
  if (td_ta_new(ph, &thread_agent) != TD_OK) {
     print_debug("can't create libthread_db agent\n");
     return false;
  }

  mydata.ph = ph;
  mydata.callback = cb;

  // we use libthread_db iterator to iterate thru list of threads.
  if (td_ta_thr_iter(thread_agent, thread_db_callback, &mydata,
                 TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY,
                 TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS) != TD_OK) {
     td_ta_delete(thread_agent);
     return false;
  }

  // delete thread agent
  td_ta_delete(thread_agent);
  return true;
}
Ejemplo n.º 3
0
void
mono_debugger_thread_db_destroy (ThreadDbHandle *handle)
{
	td_ta_delete (handle->thread_agent);
	g_free (handle);
}