aboutsummaryrefslogtreecommitdiff
path: root/gdb/thread.c
diff options
context:
space:
mode:
authorVladimir Prus <vladimir@codesourcery.com>2008-01-23 11:26:29 +0000
committerVladimir Prus <vladimir@codesourcery.com>2008-01-23 11:26:29 +0000
commit93815fbfa5134025806e16f0897efc8424bf4586 (patch)
tree8c633b007b8b7fbc6d0363b951aec6670e65c7d8 /gdb/thread.c
parent73f4030dfa279eb7afc5a6c93a752aefbdb0de35 (diff)
downloadgdb-93815fbfa5134025806e16f0897efc8424bf4586.zip
gdb-93815fbfa5134025806e16f0897efc8424bf4586.tar.gz
gdb-93815fbfa5134025806e16f0897efc8424bf4586.tar.bz2
Inform about new thread in a single place.
* thread.c (add_thread_silent): Renamed from add_thread. (print_thread_events): New variable definition. (show_print_thread_events): New function. (_initialize_thread): Add "set print thread-events" and "show print thread-events" commands. (add_thread): Announce new thread. * gdbthread.h (add_thread_silent): Declare. (print_thread_events): New variable declaration. * inf-ttrace.c (inf_ttrace_wait): Don't inform about new thread, as add_thread is always called too, and will take care of that. * infrun.c (handle_inferior_event): Likewise. * procfs.c (procfs_wait): Likewise. * remote.c (remote_currthread): Likewise. * sol-thread.c (sol_thread_wait): Likewise. * win32-nat.c (get_win32_debug_event): Likewise. * linux-thread-db.c (attach_thread): Likewise. Remove the verbose parameter. (check_event): Make detach_thread be verbose only if print_thread_events is set. * linux-nat.c (lin_lwp_attach_lwp): Don't inform about new thread. This is called only from linux-thread-db.c:attach_thread, which will take care. Remove the verbose parameter. * linux-nat.h (lin_lwp_attach_lwp): Adjust prototype.
Diffstat (limited to 'gdb/thread.c')
-rw-r--r--gdb/thread.c35
1 files changed, 31 insertions, 4 deletions
diff --git a/gdb/thread.c b/gdb/thread.c
index c4ce608..2fdfa77 100644
--- a/gdb/thread.c
+++ b/gdb/thread.c
@@ -116,11 +116,8 @@ init_thread_list (void)
thread_list = NULL;
}
-/* add_thread now returns a pointer to the new thread_info,
- so that back_ends can initialize their private data. */
-
struct thread_info *
-add_thread (ptid_t ptid)
+add_thread_silent (ptid_t ptid)
{
struct thread_info *tp;
@@ -133,6 +130,17 @@ add_thread (ptid_t ptid)
return tp;
}
+struct thread_info *
+add_thread (ptid_t ptid)
+{
+ struct thread_info *result = add_thread_silent (ptid);
+
+ if (print_thread_events)
+ printf_filtered (_("[New %s]\n"), target_pid_to_str (ptid));
+
+ return result;
+}
+
void
delete_thread (ptid_t ptid)
{
@@ -675,6 +683,17 @@ thread_command (char *tidstr, int from_tty)
gdb_thread_select (uiout, tidstr, NULL);
}
+/* Print notices when new threads are attached and detached. */
+int print_thread_events = 1;
+static void
+show_print_thread_events (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c, const char *value)
+{
+ fprintf_filtered (file, _("\
+Printing of thread events is %s.\n"),
+ value);
+}
+
static int
do_captured_thread_select (struct ui_out *uiout, void *tidstr)
{
@@ -737,4 +756,12 @@ The new thread ID must be currently known."),
if (!xdb_commands)
add_com_alias ("t", "thread", class_run, 1);
+
+ add_setshow_boolean_cmd ("thread-events", no_class,
+ &print_thread_events, _("\
+Set printing of thread events (e.g., thread start and exit)."), _("\
+Show printing of thread events (e.g., thread start and exit)."), NULL,
+ NULL,
+ show_print_thread_events,
+ &setprintlist, &showprintlist);
}