-/* Print a list of thread ids currently known, and the total number of
- threads. To be used from within catch_errors. */
-static int
-do_captured_list_thread_ids (struct ui_out *uiout, void *arg)
-{
- struct thread_info *tp;
- int num = 0;
- struct cleanup *cleanup_chain;
- int current_thread = -1;
-
- update_thread_list ();
-
- cleanup_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "thread-ids");
-
- for (tp = thread_list; tp; tp = tp->next)
- {
- if (tp->state == THREAD_EXITED)
- continue;
-
- if (ptid_equal (tp->ptid, inferior_ptid))
- current_thread = tp->global_num;
-
- num++;
- uiout->field_int ("thread-id", tp->global_num);
- }
-
- do_cleanups (cleanup_chain);
-
- if (current_thread != -1)
- uiout->field_int ("current-thread-id", current_thread);
- uiout->field_int ("number-of-threads", num);
- return GDB_RC_OK;
-}
-
-/* Official gdblib interface function to get a list of thread ids and
- the total number. */
-enum gdb_rc
-gdb_list_thread_ids (struct ui_out *uiout, char **error_message)
-{
- if (catch_exceptions_with_msg (uiout, do_captured_list_thread_ids, NULL,
- error_message, RETURN_MASK_ALL) < 0)
- return GDB_RC_FAIL;
- return GDB_RC_OK;
-}
-