[RFC] How to fix gdb.dwarf2/main-subprogram.exp with cc-with-gdb-index/cc-with-debug-names

Tom de Vries tdevries@suse.de
Mon May 13 14:20:00 GMT 2019


On 10-05-19 09:57, Tom de Vries wrote:
> On 05-05-19 13:42, Tom de Vries wrote:
>> [ was: Re: [PATCH][gdb/symtab] Support DW_AT_main_subprogram with
>> -readnow. ]
>>
>> Hi,
>>
>> DW_AT_main_subprogram is supported in normal mode (in
>> read_partial_die),and tested by test-case gdb.dwarf2/main-subprogram.exp.
>>
>> DW_AT_main_subprogram is currently not supported in -readnow mode, but
>> I've submitted a fix for that (in read_func_scope).
>>
>> Still, the test-case gdb.dwarf2/main-subprogram.exp fails with
>> executables that contain an index, either .gdb_index or .debug_names
>> (which is exercised by target boards cc-with-gdb-index and
>> cc-with-debug-names).
>>
>> I wonder whether and if so, how this should be fixed.
>>
>> ISTM that we want gdb to behave the same, functionality-wise, in normal
>> mode, -readnow mode, and with an index.
>>
>> AFAIU, to fix this, then when loading an executable with index into gdb
>> and issuing the start command, we'll need to read the debug info until
>> finding the DW_AT_main_subprogram, but reading the debug info scanning
>> just for one attribute seems rather inefficient to me.
>>
>> Any comments or advice here?
> 
> I just found in the DWARF-4 standard:
> ...
> 3.1.1 Normal and Partial Compilation Unit Entries
> 11. A DW_AT_main_subprogram attribute, which is a flag whose presence
> indicates that the compilation unit contains a subprogram that has been
> identified as the starting function of the program.
> ...
> 
> The test-case gdb.dwarf2/main-subprogram.exp doesn't contain this
> attribute on the containing CU.
> 
> Also, gcc doesn't emit it, I just filed PR90422 - "DW_AT_main_subprogram
> not added to CU DIE" (
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90422 ) about that.
> 
> I imagine that scanning the CUs for this attribute shouldn't be too slow.
> 

Tracking this at Bug 24549 - "DW_AT_main_subprogram ignored with
cc-with-gdb-index/cc-with-debug-names" (
https://sourceware.org/bugzilla/show_bug.cgi?id=24549 ).

Thanks,
- Tom



More information about the Gdb-patches mailing list