[committed][gdb/testsuite] Fix maint-expand-symbols-header-file.exp for cc-with-gdb-index

Tom de Vries tdevries@suse.de
Thu Apr 16 06:45:53 GMT 2020


[ was: Re: [PATCH][gdb] Expand symbolless symtabs using maint
expand-symtabs ]

On 14-04-2020 15:09, Tom de Vries wrote:
> On 02-04-2020 10:44, Tom de Vries wrote:
>> On 01-04-2020 21:45, Tom Tromey wrote:
>>>>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:
>>>
>>> Tom> When trying to expand the partial symtab for hello.h:
>>> Tom> ...
>>> Tom> $ gdb -batch \
>>> Tom>   -iex "set language c" \
>>> Tom>   a.out \
>>> Tom>   -ex "maint expand-symtabs hello.h" \
>>> Tom>   -ex "maint info psymtabs"
>>> Tom> ...
>>> Tom> we in fact find that the partial symtab has not been expanded:
>>> Tom> ...
>>> Tom>   { psymtab hello.h ((struct partial_symtab *) 0x27cf070)
>>> Tom>     readin no
>>> Tom> ...
>>>
>>> Does this matter, though?
>>> I thought include psymtabs like these were kind of placeholders.
>>>
>>
>> Right, but the includer symtab they're pointing towards are also not
>> expanded.
>>
> 
> I've updated the log message to reflect this, as well as the test-case.
> 
>> Concretely, it does matter for dwarf assembly test-cases, in the sense
>> that this patch allows me to have the symtab effect of setting a
>> breakpoint in a certain file, without actually setting the breakpoint,
>> which means there's no need to flesh out the .debug_line section in
>> detail, or indeed even create the file.
>>
>> [ I mentioned this patch as a prerequisite for a dwarf assembly
>> test-case here :
>> https://sourceware.org/pipermail/gdb-patches/2020-March/167152.html ]
>>
>> Furthermore, I found this problem originally not with include psymtabs,
>> but with this type of one-DIE CUs:
>> ...
>>  <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
>>     <c>   DW_AT_stmt_list   : 0x0
>>     <10>   DW_AT_low_pc      : 0x400430
>>     <18>   DW_AT_high_pc     : 0x40045b
>>     <20>   DW_AT_name        : ../sysdeps/x86_64/start.S
>>     <24>   DW_AT_comp_dir    : /home/abuild/rpmbuild/BUILD/glibc-2.26/csu
>>     <28>   DW_AT_producer    : GNU AS 2.31.1
>>     <2c>   DW_AT_language    : 32769    (MIPS assembler)
>> ...
>> which I get in every exec on openSUSE Leap 15.1.
>>
>> In that case, the problem means that "maint expand-symtabs" doesn't
>> expand the symtab, in violation of the "maint expand-symtabs"
>> documentation, while also being inconsistent with -readnow which does
>> create a symbolless symtab.
>>
> 
> I've also noted this in the log message.
> 
>> I used the include psymtabs as test-case and running example because it
>> reproduces on all platforms in a standard test-case.
>>
>>> Tom> Fix this by passing a NULL symbol_matcher and lookup_name to
>>> Tom> expand_symtabs_matching in maintenance_expand_symtabs, and skipping the call
>>> Tom> to recursively_search_psymtabs if symbol_matcher == NULL and
>>> Tom> lookup_name == NULL.
>>>
>>> Could this code use map_symtabs_matching_filename instead?
>>>
>>
>> I can see how that would help with "maint expand-symtabs <file>", but
>> still "maint expand-symtabs" would not expand the partial symtab for
>> ../sysdeps/x86_64/start.S.
>>
>> Thanks,
>> - Tom
>>
>>> I guess I'm not super fond of turning the reference arguments to
>>> pointers, unless there's really no other way.
> 
> Unfortunately I don't see another way atm, so I'm committing this as
> attached below.
> 
> [ FWIW, something I'm not very happy with myself is the undoing of the
> micro-optimization of having this outside of the partial symtabs loop:
> ...
>   lookup_name_info lookup_name = lookup_name_in.make_ignore_params ();
> ...
> but I'm not sure how to address that. ]

I somehow forgot the logic behind manually setting the language and how
that is related to indices, so in the committed version I removed the
manual language setting, and did not retest with cc-with-gdb-index, with
a FAIL as result.

This patch fixes that by reinstating the manual language setting.

Committed.

Thanks,
- Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-gdb-testsuite-Fix-maint-expand-symbols-header-file.exp-for-cc-with-gdb-index.patch
Type: text/x-patch
Size: 1744 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/gdb-patches/attachments/20200416/b53dfe57/attachment-0001.bin>


More information about the Gdb-patches mailing list