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
next 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