From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7039 invoked by alias); 9 Apr 2013 16:15:06 -0000 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 Received: (qmail 7027 invoked by uid 89); 9 Apr 2013 16:15:06 -0000 X-Spam-SWARE-Status: No, score=-4.3 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RCVD_IN_DNSWL_NONE,RCVD_IN_HOSTKARMA_NO,SPF_SOFTFAIL,TW_XD autolearn=no version=3.3.1 Received: from mtaout23.012.net.il (HELO mtaout23.012.net.il) (80.179.55.175) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Tue, 09 Apr 2013 16:15:04 +0000 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0MKZ00I00X39GF00@a-mtaout23.012.net.il> for gdb-patches@sourceware.org; Tue, 09 Apr 2013 19:14:51 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MKZ00IFZX4OBH80@a-mtaout23.012.net.il>; Tue, 09 Apr 2013 19:14:49 +0300 (IDT) Date: Tue, 09 Apr 2013 19:31:00 -0000 From: Eli Zaretskii Subject: Re: [PATCH] Display configuration details in --help In-reply-to: <83ehf85u7x.fsf@gnu.org> To: tromey@redhat.com, brobecker@adacore.com, palves@redhat.com, dje@google.com Cc: gdb-patches@sourceware.org Reply-to: Eli Zaretskii Message-id: <83wqsbadfe.fsf@gnu.org> References: <83r4jaynqq.fsf@gnu.org> <514B4AC3.1090103@redhat.com> <83zjxwy4ux.fsf@gnu.org> <20130321191051.GF5447@adacore.com> <83r4j8y1kh.fsf@gnu.org> <20130321203919.GG5447@adacore.com> <87r4j8zd0k.fsf@fleche.redhat.com> <83ehf85u7x.fsf@gnu.org> X-SW-Source: 2013-04/txt/msg00244.txt.bz2 > Date: Thu, 21 Mar 2013 23:16:50 +0200 > From: Eli Zaretskii > Cc: brobecker@adacore.com, palves@redhat.com, dje@google.com, gdb-patches@sourceware.org > > > From: Tom Tromey > > Cc: Eli Zaretskii , palves@redhat.com, dje@google.com, > > gdb-patches@sourceware.org > > Date: Thu, 21 Mar 2013 14:58:03 -0600 > > > > For the new information, "show configuration" might also be nice to have. > > It would not be much more code and would let people see the info for the > > gdb they are currently using. > > OK, will do. Respinning, here's v2 of that patch, which accommodates all the comments till now. It also includes documentation; please someone review that, as I'm not objective in this case ;-). OK to commit? 2013-04-09 Eli Zaretskii * top.c (print_gdb_configuration): New function, displays the details about GDB configure-time parameters. (print_gdb_version): Mention "show configuration". * cli/cli-cmds.c (show_configuration): New function. (_initialize_cli_cmds): Add the "show configuration" command. * main.c (captured_main) : New static var. : Use it. If --configuration was given, call print_gdb_configuration. --- gdb/cli/cli-cmds.c~0 2013-03-12 19:39:44.000000000 +0200 +++ gdb/cli/cli-cmds.c 2013-04-09 08:02:46.088591300 +0300 @@ -314,6 +314,12 @@ show_version (char *args, int from_tty) printf_filtered ("\n"); } +static void +show_configuration (char *args, int from_tty) +{ + print_gdb_configuration (gdb_stdout); +} + /* Handle the quit command. */ void @@ -1756,6 +1762,9 @@ the previous command number shown."), add_cmd ("version", no_set_class, show_version, _("Show what version of GDB this is."), &showlist); + add_cmd ("configuration", no_set_class, show_configuration, + _("Show how GDB was configured at build time."), &showlist); + /* If target is open when baud changes, it doesn't take effect until the next open (I think, not sure). */ add_setshow_zinteger_cmd ("remotebaud", no_class, &baud_rate, _("\ --- gdb/top.c~0 2013-01-25 16:17:10.000000000 +0200 +++ gdb/top.c 2013-04-09 08:02:27.508872200 +0300 @@ -1146,15 +1146,101 @@ and \"show warranty\" for details.\n"); { fprintf_filtered (stream, "%s", host_name); } - fprintf_filtered (stream, "\"."); + fprintf_filtered (stream, "\".\n\ +Type \"show configuration\" for configuration details."); if (REPORT_BUGS_TO[0]) { - fprintf_filtered (stream, + fprintf_filtered (stream, _("\nFor bug reporting instructions, please see:\n")); fprintf_filtered (stream, "%s.", REPORT_BUGS_TO); } } + +/* Print the details of GDB build-time configuration. */ +void +print_gdb_configuration (struct ui_file *stream) +{ + fprintf_filtered (stream, _("\ +This GDB was configured as follows:\n\ + configure --host=%s --target=%s\n\ +"), host_name, target_name); + fprintf_filtered (stream, _("\ + --with-auto-load-dir=%s\n\ + --with-auto-load-safe-path=%s\n\ +"), AUTO_LOAD_DIR, AUTO_LOAD_SAFE_PATH); +#if HAVE_LIBEXPAT + fprintf_filtered (stream, _("\ + --with-expat\n\ +")); +#else + fprintf_filtered (stream, _("\ + --without-expat\n\ +")); +#endif + if (GDB_DATADIR[0]) + fprintf_filtered (stream, _("\ + --with-gdb-datadir=%s%s\n\ +"), GDB_DATADIR, GDB_DATADIR_RELOCATABLE ? " (relocatable)" : ""); +#ifdef ICONV_BIN + fprintf_filtered (stream, _("\ + --with-iconv-bin=%s%s\n\ +"), ICONV_BIN, ICONV_BIN_RELOCATABLE ? " (relocatable)" : ""); +#endif + if (JIT_READER_DIR[0]) + fprintf_filtered (stream, _("\ + --with-jit-reader-dir=%s%s\n\ +"), JIT_READER_DIR, JIT_READER_DIR_RELOCATABLE ? " (relocatable)" : ""); +#if HAVE_LIBUNWIND_IA64_H + fprintf_filtered (stream, _("\ + --with-libunwind-ia64\n\ +")); +#else + fprintf_filtered (stream, _("\ + --without-libunwind-ia64\n\ +")); +#endif +#if HAVE_LIBLZMA + fprintf_filtered (stream, _("\ + --with-lzma\n\ +")); +#else + fprintf_filtered (stream, _("\ + --without-lzma\n\ +")); +#endif +#ifdef WITH_PYTHON_PATH + fprintf_filtered (stream, _("\ + --with-python=%s%s\n\ +"), WITH_PYTHON_PATH, PYTHON_PATH_RELOCATABLE ? " (relocatable)" : ""); +#endif +#ifdef RELOC_SRCDIR + fprintf_filtered (stream, _("\ + --with-relocated-sources=%s\n\ +"), RELOC_SRCDIR); +#endif + if (DEBUGDIR[0]) + fprintf_filtered (stream, _("\ + --with-separate-debug-dir=%s%s\n\ +"), DEBUGDIR, DEBUGDIR_RELOCATABLE ? " (relocatable)" : ""); + if (TARGET_SYSTEM_ROOT[0]) + fprintf_filtered (stream, _("\ + --with-sysroot=%s%s\n\ +"), TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT_RELOCATABLE ? " (relocatable)" : ""); + if (SYSTEM_GDBINIT[0]) + fprintf_filtered (stream, _("\ + --with-system-gdbinit=%s%s\n\ +"), SYSTEM_GDBINIT, SYSTEM_GDBINIT_RELOCATABLE ? " (relocatable)" : ""); +#if HAVE_ZLIB_H + fprintf_filtered (stream, _("\ + --with-zlib\n\ +")); +#else + fprintf_filtered (stream, _("\ + --without-zlib\n\ +")); +#endif +} /* The current top level prompt, settable with "set prompt", and/or --- gdb/main.c~4 2013-04-09 08:40:03.404632700 +0300 +++ gdb/main.c 2013-04-09 08:08:00.461806500 +0300 @@ -322,6 +322,7 @@ captured_main (void *data) initializer. */ static int print_help; static int print_version; + static int print_configuration; /* Pointers to all arguments of --command option. */ VEC (cmdarg_s) *cmdarg_vec = NULL; @@ -484,6 +485,7 @@ captured_main (void *data) {"command", required_argument, 0, 'x'}, {"eval-command", required_argument, 0, 'X'}, {"version", no_argument, &print_version, 1}, + {"configuration", no_argument, &print_configuration, 1}, {"x", required_argument, 0, 'x'}, {"ex", required_argument, 0, 'X'}, {"init-command", required_argument, 0, OPT_IX}, @@ -727,8 +729,9 @@ captured_main (void *data) } } - /* If --help or --version, disable window interface. */ - if (print_help || print_version) + /* If --help or --version or --configuration, disable window + interface. */ + if (print_help || print_version || print_configuration) { use_windows = 0; } @@ -819,6 +822,14 @@ captured_main (void *data) exit (0); } + if (print_configuration) + { + print_gdb_configuration (gdb_stdout); + wrap_here (""); + printf_filtered ("\n"); + exit (0); + } + /* FIXME: cagney/2003-02-03: The big hack (part 1 of 2) that lets GDB retain the old MI1 interpreter startup behavior. Output the copyright message before the interpreter is installed. That way @@ -1130,6 +1141,7 @@ Options:\n\n\ #endif fputs_unfiltered (_("\ --version Print version information and then exit.\n\ + --configuration Print details about GDB configuration and then exit.\n\ -w Use a window interface.\n\ --write Set writing into executable and core files.\n\ --xdb XDB compatibility mode.\n\ --- gdb/top.h~0 2013-01-07 18:40:36.000000000 +0200 +++ gdb/top.h 2013-04-09 08:03:47.833787100 +0300 @@ -31,6 +31,7 @@ extern char gdbinit[]; extern void print_gdb_version (struct ui_file *); +extern void print_gdb_configuration (struct ui_file *); extern void read_command_file (FILE *); extern void init_history (void); 2013-04-09 Eli Zaretskii * gdb.texinfo (Mode Options): Document '-configuration'. (Help): Document "show configuration". (Bug Reporting): Add requirements to include the configuration details in bug reports. --- gdb/doc/gdb.texinfo~0 2013-03-11 21:43:52.000000000 +0200 +++ gdb/doc/gdb.texinfo 2013-04-09 08:27:33.409998600 +0300 @@ -1263,6 +1263,12 @@ This option causes @value{GDBN} to print its version number and no-warranty blurb, and exit. +@item -configuration +@cindex @code{--configuration} +This option causes @value{GDBN} to print details about its build-time +configuration parameters, and then exit. These details can be +important when reporting @value{GDBN} bugs (@pxref{GDB Bugs}). + @end table @node Startup @@ -1836,7 +1842,7 @@ @end table @c @end group -Here are three miscellaneous @code{show} subcommands, all of which are +Here are several miscellaneous @code{show} subcommands, all of which are exceptional in lacking corresponding @code{set} commands: @table @code @@ -1867,6 +1873,15 @@ Display the @sc{gnu} ``NO WARRANTY'' statement, or a warranty, if your version of @value{GDBN} comes with one. +@kindex show configuration +@item show configuration +Display detailed information about the way @value{GDBN} was configured +when it was built. This displays the optional arguments passed to the +@file{configure} script and also configuration parameters detected +automatically by @command{configure}. When reporting a @value{GDBN} +bug (@pxref{GDB Bugs}), it is important to include this information in +your report. + @end table @node Running @@ -34650,6 +34665,12 @@ version number. @item +The details of the @value{GDBN} build-time configuration. +@value{GDBN} shows these details if you invoke it with the +@option{--configuration} command-line option, or if you type +@code{show configuration} at @value{GDBN}'s prompt. + +@item What compiler (and its version) was used to compile @value{GDBN}---e.g.@: ``@value{GCC}--2.8.1''. --- gdb/NEWS 9 Apr 2013 08:04:32 -0000 +++ gdb/NEWS 9 Apr 2013 16:13:15 -0000 @@ -4,12 +4,19 @@ *** Changes since GDB 7.6 * New commands: +show configuration + Display the details of GDB configure-time options. + maint set|show per-command maint set|show per-command space maint set|show per-command time maint set|show per-command symtab Enable display of per-command gdb resource usage. +* New command-line options +--configuration + Display the details of GDB configure-time options. + * New options set remote trace-status-packet