[PATCH v5] Add support for the readnever concept

Sergio Durigan Junior sergiodj@redhat.com
Sat Dec 2 02:31:00 GMT 2017


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
http://sergiodj.net/



More information about the Gdb-patches mailing list