Re: [PATCH] Display configuration details in --help

Doug Evans
2013-04-09T17:53:38Z

On Tue, Apr 9, 2013 at 10:37 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>> I have a bit of a phobia of adding more lines to gdb's initial output.
>> It's too long already IMO. [I realize there's -q.]
>> I'm not objecting per se. Just wondering how critical this is.
>
> It's not critical. But then neither is this:
>
> GNU gdb (GDB) 7.5.1
> Copyright (C) 2012 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
> and "show warranty" for details. ^^^^^^^^^^^^^^^^^^
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> So I thought we should be consistent here, and offer the same for this
> line:
>
> This GDB was configured as "i686-pc-mingw32".
>
> I'm okay with not adding that, but can someone explain why it is
> different from advertising "show copying" and "show warranty"? Should
> we remove those two as well?

I need to check, but I think(!) the "show copying" and "show warranty"
are required by GNU standards.

>> > +/* 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 we've already discussed this, please ignore, but ... :-)
>> I'd prefer one line per fprintf instead of three.
>
> Sorry, I'm not following: what 3 lines? Can you show how would you
> like the code be reformatted?

fprintf_filtered (stream, _(" -with-expat\n")); // assuming 2
space indentation

>> Also, is there something driving the choice of indenting 13 spaces in?
>
> It lines up to the right of "configure", below the first option:
>
> This GDB is configured as follows:
> configure --host=i686-pc-mingw32 --target=i686-pc-mingw32
> --with-auto-load-dir=$debugdir:$datadir/auto-load
> --with-auto-load-safe-path=$debugdir:$datadir/auto-load
> --with-expat
> --with-gdb-datadir=d:/usr/share/gdb (relocatable)
> --with-jit-reader-dir=d:/usr/lib/gdb (relocatable)
> --without-libunwind-ia64
> --with-lzma
> --with-python=d:/usr/Python26 (relocatable)
> --with-separate-debug-dir=d:/usr/lib/debug (relocatable)
> --with-system-gdbinit=d:/usr/etc/gdbinit (relocatable)
> --with-zlib
>
>> How about 2 or 4?
>> For consistency with print_gdb_help I'd go with 2.
>
> print_gdb_help displays a different information, so I see no need for
> consistency here. But I won't argue if others think like you do.

One could parameterize the indentation. Just a suggestion.
e.g. fprintf_filtered ("%s--with-foo", indent); // or some such [yes,
I left off _()]

>> > 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\
>>
>> The options here are (mostly) sorted alphabetically.
>
> Except where they aren't:
>
> --args Arguments after executable-file are passed to inferior
> -b BAUDRATE Set serial port baud rate used for remote debugging.
> --batch Exit after processing options.
> --batch-silent As for --batch, but suppress all gdb stdout output.
> >>> --return-child-result
> GDB exit code will be the child's exit code.
> --cd=DIR Change current directory to DIR.
> --command=FILE, -x Execute GDB commands from FILE.
> >>> --eval-command=COMMAND, -ex
> Execute a single GDB command.
> May be used multiple times and in conjunction
> with --command.
> >>> --init-command=FILE, -ix Like -x but execute it before loading inferior.
> >>> --init-eval-command=COMMAND, -iex Like -ex but before loading inferior.
> >>> --core=COREFILE Analyze the core dump COREFILE.
> >>> --pid=PID Attach to running process PID.
> --dbx DBX compatibility mode.
> --directory=DIR Search for source files in DIR.
> --epoch Output information used by epoch emacs-GDB interface.
> --exec=EXECFILE Use EXECFILE as the executable.
> --fullname Output information used by emacs-GDB interface.
> --help Print this message.
> --interpreter=INTERP
> Select a specific interpreter / user interface
> -l TIMEOUT Set timeout in seconds for remote debugging.
> --nw Do not use a window interface.
> --nx Do not read .gdbinit file.
> --quiet Do not print version number on startup.
> --readnow Fully read symbol files on first access.
> --se=FILE Use FILE as symbol file and executable file.
> --symbols=SYMFILE Read symbols from SYMFILE.
> --tty=TTY Use TTY for input/output by the program being debugged.
> --version Print version information and then exit.
> -w Use a window interface.
> --write Set writing into executable and core files.
> --xdb XDB compatibility mode.
>
> Again, I'm not really wedded to the place where I inserted the new
> option, but please tell me near which 'c' option to put it instead ;-).

Right after --command works for me.