Re: [PATCH v5] Add support for the readnever concept

Pedro Alves
2017-12-01T23:19:52Z

On 12/01/2017 10:16 PM, Sergio Durigan Junior wrote:
> Changes from v4:
>
> - Cleaned-up the commit message and ChangeLogs.
>
> - Simplified condition when checking for readnever. Removed "top.h"
> from files that didn't need it.
>
> - Added xref to "-readnever" option (on symbol-file command) pointing
> to "--readnever".
>
> - Merged READNOW_HELP and READNEVER_HELP.
>
>
> The purpose of this concept is to turn the load of debugging
> information off, either globally (via the '--readnever' option), or
> objfile-specific. The implementation proposed here is an extension of
> the patch distributed with Fedora GDB; looking at the Fedora patch
> itself and the history, one can see some reasons why it was never
> resubmitted:
>
> - The patch appears to have been introduced as a workaround, at
> least initially;
> - The patch is far from perfect, as it simply shunts the load of
> DWARF debugging information, without really worrying about the
> other debug format.
> - Who really does non-symbolic debugging anyways?
>
> One use of this feature is when a user simply wants to do the
> following sequence: attach, dump core, detach. Loading the debugging
> information in this case is an unnecessary cause of delay.
>
> This patch expands the version shipped with Fedora GDB in order to
> make the feature available for all the debuginfo backends, not only
> for DWARF. It also implements a per-objfile flag which can be
> activated by using the "-readnever" command when using the
> 'add-symbol-file' or 'symbol-file' commands.
>
> It's also worth mentioning that this patch tests whether GDB correctly
> fails to initialize if both '--readnow' and '--readnever' options are
> passed.
>
> Tested on the BuildBot.
>
> gdb/ChangeLog:
>
> 2017-12-01 Andrew Cagney <cagney@redhat.com>
> Joel Brobecker <brobecker@adacore.com>
> Sergio Durigan Junior <sergiodj@redhat.com>
>
> * NEWS (Changes since GDB 8.0: Mention new '--readnever'
> feature.
> * coffread.c (coff_symfile_read): Do not map over sections with
> 'coff_locate_sections' if readnever is on.
> * dwarf2read.c (dwarf2_has_info): Return 0 if
> readnever is on.
> * elfread.c (elf_symfile_read): Do not map over sections with
> 'elf_locate_sections' if readnever is on.
> * main.c (validate_readnow_readnever): New function.
> (captured_main_1): Add support for --readnever.
> (print_gdb_help): Document --readnever.
> * objfile-flags.h (enum objfile_flag) <OBJF_READNEVER>: New
> flag.
> * symfile.c (readnever_symbol_files): New global.
> (symbol_file_add_with_addrs): Set 'OBJF_READNEVER' when
> 'READNEVER_SYMBOL_FILES' is set.
> (validate_readnow_readnever): New function.
> (symbol_file_command): Handle '-readnever' option.
> Call 'validate_readnow_readnever'.
> (add_symbol_file_command): Handle '-readnever' option.
> Call 'validate_readnow_readnever'.
> (_initialize_symfile): Document new '-readnever' option for
> both 'symbol-file' and 'add-symbol-file' commands.
> * top.h (readnever_symbol_files): New extern global.
> * xcoffread.c (xcoff_initial_scan): Do not read debug
> information if readnever is on.
>
> gdb/doc/ChangeLog:
>
> 2017-12-01 Andrew Cagney <cagney@redhat.com>
> Joel Brobecker <brobecker@adacore.com>
> Sergio Durigan Junior <sergiodj@redhat.com>
>
> * gdb.texinfo (File Options): Document --readnever.
> (Commands to Specify Files): Likewise, for 'symbol-file' and
> 'add-symbol-file'.
>
> gdb/testsuite/ChangeLog:
>
> 2017-12-01 Joel Brobecker <brobecker@adacore.com>
> Sergio Durigan Junior <sergiodj@redhat.com>
> Pedro Alves <palves@redhat.com>
>
> * gdb.base/readnever.c, gdb.base/readnever.exp: New files.

OK.

Thanks,
Pedro Alves