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

Sergio Durigan Junior
2017-12-02T02:31:23Z

On Friday, December 01 2017, Pedro Alves wrote:

> 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.

Pushed:

97cbe998d0dd5c13a0317fbb24d745da367d8caa

Thanks.

--
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible