Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: dje@google.com (Doug Evans)
To: gdb-patches@sourceware.org
Subject: [RFA] set print symbol-loading on|off
Date: Thu, 10 Jul 2008 20:37:00 -0000	[thread overview]
Message-ID: <20080710203701.6AF041C769A@localhost> (raw)

Along the lines of "set print thread-events on|off",
this option lets one turn off symbol loading messages.
If the app has *lots* of shared libraries, these messages
can be more noise than signal.

2008-07-10  Doug Evans  <dje@google.com>

	Add "set print symbol-loading on|off".
	* NEWS: Document new option.
	* symfile.h (print_symbol_loading): Declare.
	* symfile.c (print_symbol_loading): New global.
	(symbol_file_add_with_addrs_or_offsets): Only print "Reading symbols
	from ..." if print_symbol_loading.
	(_initialize_symfile): Add set/show print symbol-loading.
	* solib.c (solib_read_symbols): Only print "Loaded symbols for ..."
	if print_symbol_loading.

	* doc/gdb.texinfo: Document "set print symbol-loading on|off".
	

Index: NEWS
===================================================================
RCS file: /cvs/src/src/gdb/NEWS,v
retrieving revision 1.280
diff -u -p -u -p -r1.280 NEWS
--- NEWS	10 Jul 2008 16:44:47 -0000	1.280
+++ NEWS	10 Jul 2008 20:16:31 -0000
@@ -68,6 +68,10 @@ find [/size-char] [/max-count] start-add
     val1 [, val2, ...]
   Search memory for a sequence of bytes.
 
+set print symbol-loading
+show print symbol-loading
+  Control printing of symbol loading messages.
+
 set debug timestamp
 show debug timestamp
   Display timestamps with GDB debugging output.
Index: solib.c
===================================================================
RCS file: /cvs/src/src/gdb/solib.c,v
retrieving revision 1.102
diff -u -p -u -p -r1.102 solib.c
--- solib.c	19 May 2008 15:49:14 -0000	1.102
+++ solib.c	10 Jul 2008 20:16:31 -0000
@@ -448,7 +448,7 @@ solib_read_symbols (struct so_list *so, 
 			"Error while reading shared library symbols:\n",
 			RETURN_MASK_ALL))
 	{
-	  if (from_tty)
+	  if (from_tty && print_symbol_loading)
 	    printf_unfiltered (_("Loaded symbols for %s\n"), so->so_name);
 	  so->symbols_loaded = 1;
 	  return 1;
Index: symfile.c
===================================================================
RCS file: /cvs/src/src/gdb/symfile.c,v
retrieving revision 1.206
diff -u -p -u -p -r1.206 symfile.c
--- symfile.c	9 Jul 2008 11:16:49 -0000	1.206
+++ symfile.c	10 Jul 2008 20:16:31 -0000
@@ -171,6 +171,12 @@ Dynamic symbol table reloading multiple 
 		    value);
 }
 
+/* If non-zero, gdb will notify the user when it is loading symbols
+   from a file.  This is almost always what users will want to have happen;
+   but for programs with lots of dynamically linked libraries, the output
+   can be more noise than signal.  */
+
+int print_symbol_loading = 1;
 
 /* If non-zero, shared library symbols will be added automatically
    when the inferior is created, new libraries are loaded, or when
@@ -1046,9 +1052,12 @@ symbol_file_add_with_addrs_or_offsets (b
 	deprecated_pre_add_symbol_hook (name);
       else
 	{
-	  printf_unfiltered (_("Reading symbols from %s..."), name);
-	  wrap_here ("");
-	  gdb_flush (gdb_stdout);
+          if (print_symbol_loading)
+	    {
+	      printf_unfiltered (_("Reading symbols from %s..."), name);
+	      wrap_here ("");
+	      gdb_flush (gdb_stdout);
+	    }
 	}
     }
   syms_from_objfile (objfile, addrs, offsets, num_offsets,
@@ -1061,7 +1070,7 @@ symbol_file_add_with_addrs_or_offsets (b
 
   if ((flags & OBJF_READNOW) || readnow_symbol_files)
     {
-      if (from_tty || info_verbose)
+      if ((from_tty || info_verbose) && print_symbol_loading)
 	{
 	  printf_unfiltered (_("expanding to full symbols..."));
 	  wrap_here ("");
@@ -1103,7 +1112,8 @@ symbol_file_add_with_addrs_or_offsets (b
       xfree (debugfile);
     }
 
-  if (!have_partial_symbols () && !have_full_symbols ())
+  if (!have_partial_symbols () && !have_full_symbols ()
+      && print_symbol_loading)
     {
       wrap_here ("");
       printf_filtered (_("(no debugging symbols found)"));
@@ -1120,7 +1130,8 @@ symbol_file_add_with_addrs_or_offsets (b
 	deprecated_post_add_symbol_hook ();
       else
 	{
-	  printf_unfiltered (_("done.\n"));
+	  if (print_symbol_loading)
+	    printf_unfiltered (_("done.\n"));
 	}
     }
 
@@ -4219,4 +4230,12 @@ the global debug-file directory prepende
 				     NULL,
 				     show_debug_file_directory,
 				     &setlist, &showlist);
+
+  add_setshow_boolean_cmd ("symbol-loading", no_class,
+                           &print_symbol_loading, _("\
+Set printing of symbol loading messages."), _("\
+Show printing of symbol loading messages."), NULL,
+                           NULL,
+                           NULL,
+                           &setprintlist, &showprintlist);
 }
Index: symfile.h
===================================================================
RCS file: /cvs/src/src/gdb/symfile.h,v
retrieving revision 1.46
diff -u -p -u -p -r1.46 symfile.h
--- symfile.h	3 Feb 2008 22:13:29 -0000	1.46
+++ symfile.h	10 Jul 2008 20:16:31 -0000
@@ -267,6 +267,13 @@ extern char *obconcat (struct obstack *o
 
 			/*   Variables   */
 
+/* If non-zero, gdb will notify the user when it is loading symbols
+   from a file.  This is almost always what users will want to have happen;
+   but for programs with lots of dynamically linked libraries, the output
+   can be more noise than signal.  */
+
+extern int print_symbol_loading;
+
 /* If non-zero, shared library symbols will be added automatically
    when the inferior is created, new libraries are loaded, or when
    attaching to the inferior.  This is almost always what users will
Index: doc/gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.507
diff -u -p -u -p -r1.507 gdb.texinfo
--- doc/gdb.texinfo	10 Jul 2008 09:30:59 -0000	1.507
+++ doc/gdb.texinfo	10 Jul 2008 20:16:34 -0000
@@ -11533,6 +11533,22 @@ is printed as follows:
 @item show opaque-type-resolution
 Show whether opaque types are resolved or not.
 
+@kindex set print symbol-loading
+@cindex print messages when symbols are loaded
+@item set print symbol-loading
+@itemx set print symbol-loading on
+@itemx set print symbol-loading off
+The @code{set print symbol-loading} command allows you to enable or
+disable printing of messages when @value{GDBN} loads symbols.
+By default, these messages will be printed, and normally this is what
+you want.  Disabling these messages is useful when debugging applications
+with lots of shared libraries where the quantity of output can be more
+annoying than useful.
+
+@kindex show print symbol-loading
+@item show print symbol-loading
+Show whether messages will be printed when @value{GDBN} loads symbols.
+
 @kindex maint print symbols
 @cindex symbol dump
 @kindex maint print psymbols


             reply	other threads:[~2008-07-10 20:37 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-10 20:37 Doug Evans [this message]
2008-07-10 21:42 ` Stan Shebs
2008-07-19 22:38 ` Eli Zaretskii
2008-07-23 22:47   ` Doug Evans
     [not found]   ` <e394668d0807231541lf56cd50pdffbef18d0896735@mail.gmail.com>
2008-07-24 11:21     ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080710203701.6AF041C769A@localhost \
    --to=dje@google.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox