[patch] Fix for 'too much spew with "set verbose on"'

Paul Pluzhnikov ppluzhnikov@google.com
Fri Jul 30 16:25:00 GMT 2010


In http://www.cygwin.com/ml/archer/2010-q2/msg00054.html, Roland complained:

  "I do like to know what gdb is doing.  But this has gotten out of hand.
  Does it really need to be saying all this, and the same things so many times?"

Here is a proposed fix (moving spewage under "maint set
show-libthread-db-processing" subcommand).

Thanks,
-- 
Paul Pluzhnikov


2010-07-30  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* linux-thread-db.c (maint_show_libthreaddb_processing): New variable.
	(thread_db_find_new_threads_silently): Control verbosity with it.
	(try_thread_db_load_1, try_thread_db_load): Likewise.
	(find_new_threads_once): Likewise.
	(_initialize_thread_db): Set/show it.

doc/ChangeLog:

	* gdb.texinfo (Threads): Document show-libthread-db-processing.
-------------- next part --------------
Index: linux-thread-db.c
===================================================================
RCS file: /cvs/src/src/gdb/linux-thread-db.c,v
retrieving revision 1.75
diff -u -p -u -r1.75 linux-thread-db.c
--- linux-thread-db.c	11 Jun 2010 12:10:12 -0000	1.75
+++ linux-thread-db.c	30 Jul 2010 16:02:59 -0000
@@ -75,6 +75,10 @@
 
 static char *libthread_db_search_path;
 
+/* If non-zero, print details of libthread_db processing.  */
+
+static int maint_show_libthreaddb_processing;
+
 /* If we're running on GNU/Linux, we must explicitly attach to any new
    threads.  */
 
@@ -601,7 +605,7 @@ thread_db_find_new_threads_silently (pti
       thread_db_find_new_threads_2 (ptid, 1);
     }
 
-  if (except.reason < 0 && info_verbose)
+  if (except.reason < 0 && maint_show_libthreaddb_processing)
     {
       exception_fprintf (gdb_stderr, except,
 			 "Warning: thread_db_find_new_threads_silently: ");
@@ -658,7 +662,7 @@ try_thread_db_load_1 (struct thread_db_i
   err = info->td_ta_new_p (&info->proc_handle, &info->thread_agent);
   if (err != TD_OK)
     {
-      if (info_verbose)
+      if (maint_show_libthreaddb_processing)
 	printf_unfiltered (_("td_ta_new failed: %s\n"),
 			   thread_db_err_str (err));
       else
@@ -708,7 +712,7 @@ try_thread_db_load_1 (struct thread_db_i
 
   printf_unfiltered (_("[Thread debugging using libthread_db enabled]\n"));
 
-  if (info_verbose || *libthread_db_search_path)
+  if (maint_show_libthreaddb_processing || *libthread_db_search_path)
     {
       const char *library;
 
@@ -745,18 +749,18 @@ try_thread_db_load (const char *library)
   void *handle;
   struct thread_db_info *info;
 
-  if (info_verbose)
+  if (maint_show_libthreaddb_processing)
     printf_unfiltered (_("Trying host libthread_db library: %s.\n"),
                        library);
   handle = dlopen (library, RTLD_NOW);
   if (handle == NULL)
     {
-      if (info_verbose)
+      if (maint_show_libthreaddb_processing)
 	printf_unfiltered (_("dlopen failed: %s.\n"), dlerror ());
       return 0;
     }
 
-  if (info_verbose && strchr (library, '/') == NULL)
+  if (maint_show_libthreaddb_processing && strchr (library, '/') == NULL)
     {
       void *td_init;
 
@@ -1381,7 +1385,7 @@ find_new_threads_once (struct thread_db_
 				    TD_THR_ANY_USER_FLAGS);
     }
 
-  if (info_verbose)
+  if (maint_show_libthreaddb_processing)
     {
       if (except.reason < 0)
 	exception_fprintf (gdb_stderr, except,
@@ -1685,6 +1689,17 @@ gdb itself."),
 			    NULL,
 			    NULL,
 			    &setlist, &showlist);
+
+  add_setshow_boolean_cmd ("show-libthreaddb-processing", class_maintenance,
+			   &maint_show_libthreaddb_processing, _("\
+Set whether to show processing of libthread_db."), _("\
+Show whether to show processing of libthread_db."), _("\
+Use \"on\" to enable, \"off\" to disable.\n\
+If enabled, GDB will print details of libthread_db processing."),
+			   NULL,
+			   NULL,
+			   &maintenance_set_cmdlist,
+			   &maintenance_show_cmdlist);
   /* Add ourselves to objfile event chain.  */
   observer_attach_new_objfile (thread_db_new_objfile);
 }
Index: doc/gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.745
diff -u -p -u -r1.745 gdb.texinfo
--- doc/gdb.texinfo	30 Jul 2010 14:32:02 -0000	1.745
+++ doc/gdb.texinfo	30 Jul 2010 16:03:00 -0000
@@ -2864,6 +2864,14 @@ only on some platforms.
 @kindex show libthread-db-search-path 
 @item show libthread-db-search-path 
 Display current libthread_db search path.
+
+@kindex maint set show-libthread-db-processing
+@kindex maint show show-libthread-db-processing
+@cindex processing @code{libthread_db}
+@item maint set show-libthread-db-processing
+@itemx maint show show-libthread-db-processing
+Control whether to show various internal events while searching for and
+using @code{libthread_db}.  Use @code{ON} to enable, @code{OFF} to disable.
 @end table
 
 @node Forks


More information about the Gdb mailing list