From bf250677afabbf59fee4ab3e1a96ffa7ddff2146 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Thu, 10 Jul 2008 23:08:21 +0000 Subject: [PATCH] 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". --- gdb/ChangeLog | 12 ++++++++++++ gdb/NEWS | 4 ++++ gdb/doc/ChangeLog | 4 ++++ gdb/doc/gdb.texinfo | 16 ++++++++++++++++ gdb/solib.c | 2 +- gdb/symfile.c | 31 +++++++++++++++++++++++++------ gdb/symfile.h | 7 +++++++ 7 files changed, 69 insertions(+), 7 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index dbea489..67832fc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,15 @@ +2008-07-10 Doug Evans + + 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. + 2008-07-10 Pedro Alves Non-stop linux native. diff --git a/gdb/NEWS b/gdb/NEWS index 7372689..e783259 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -68,6 +68,10 @@ find [/size-char] [/max-count] start-address, end-address|+search-space-size, 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. diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 182b9dc..8786b4a 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,7 @@ +2008-07-10 Doug Evans + + * doc/gdb.texinfo: Document "set print symbol-loading on|off". + 2008-07-10 Jan Kratochvil * gdb.texinfo (Starting): Document "set disable-randomization". diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 710b96b..2920179 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -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 diff --git a/gdb/solib.c b/gdb/solib.c index a694b81..515402e 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -448,7 +448,7 @@ solib_read_symbols (struct so_list *so, int from_tty) "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; diff --git a/gdb/symfile.c b/gdb/symfile.c index d98f62b..12f17ac 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -171,6 +171,12 @@ Dynamic symbol table reloading multiple times in one run is %s.\n"), 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 (bfd *abfd, int from_tty, 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 (bfd *abfd, int from_tty, 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 (bfd *abfd, int from_tty, 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 (bfd *abfd, int from_tty, 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 prepended."), 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); } diff --git a/gdb/symfile.h b/gdb/symfile.h index 948cef7..02fb7df 100644 --- a/gdb/symfile.h +++ b/gdb/symfile.h @@ -267,6 +267,13 @@ extern char *obconcat (struct obstack *obstackp, const char *, const char *, /* 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 -- 2.7.4