From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12274 invoked by alias); 10 Jul 2008 20:37:32 -0000 Received: (qmail 12261 invoked by uid 22791); 10 Jul 2008 20:37:31 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.33.17) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 10 Jul 2008 20:37:14 +0000 Received: from wpaz13.hot.corp.google.com (wpaz13.hot.corp.google.com [172.24.198.77]) by smtp-out.google.com with ESMTP id m6AKb21B030494 for ; Thu, 10 Jul 2008 21:37:03 +0100 Received: from localhost (ruffy.corp.google.com [172.18.118.116]) by wpaz13.hot.corp.google.com with ESMTP id m6AKb1M2002161 for ; Thu, 10 Jul 2008 13:37:02 -0700 Received: by localhost (Postfix, from userid 67641) id 6AF041C769A; Thu, 10 Jul 2008 13:37:01 -0700 (PDT) To: gdb-patches@sourceware.org Subject: [RFA] set print symbol-loading on|off Message-Id: <20080710203701.6AF041C769A@localhost> Date: Thu, 10 Jul 2008 20:37:00 -0000 From: dje@google.com (Doug Evans) X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-07/txt/msg00165.txt.bz2 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 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