Recent commit in binutils-gdb

Andrew Burgess andrew.burgess@embecosm.com
Thu Apr 30 13:24:27 GMT 2020


* Tom de Vries <tdevries@suse.de> [2020-04-30 07:49:56 +0200]:

> On 30-04-2020 06:10, Sterling Augustine via Gdb-patches wrote:
> > The commit was proposed here:
> > 
> > https://sourceware.org/pipermail/gdb/2020-March/000012.html
> > 
> 
> With reproducer:
> ...
> $ cat b.cpp
> namespace hide { struct Bar {  int y; }; }
> struct Foo {  hide::Bar* b; };
> 
> inline void x() { hide::Bar b; }
> 
> static Foo aFoo;
> 
> void * f() {
>   return aFoo.b;
> }
> 
> int main() {
>   f();
>   return 0;
> }
> $ g++ -fdebug-types-section b.cpp -g
> $ ./build/gdb/gdb -ex "b f" -ex run -ex "ptype hide::Bar" ./a.out
> ...
> 
> I can reproduce this problem before the recent commit 770479f223e "gdb:
> Fix toplevel types with -fdebug-types-section", but not after.
> 
> Also, when I revert commit 770479f223e, and leave this one in place, it
> doesn't fix the problem. That seems to be because the proposed commit:
> ...
> @@ -10954,6 +10954,7 @@ dwarf2_cu::setup_type_unit_groups (struct
> die_info *die)
>                         compunit_language (cust),
>                         0, cust));
> 
> +      list_in_scope = get_builder ()->get_file_symbols ();
>        auto &file_names = line_header->file_names ();
>        for (i = 0; i < file_names.size (); ++i)
>         {
> ...
> and the actual commit differ (note the different in context before):
> ...
> @@ -10942,6 +10942,7 @@ dwarf2_cu::setup_type_unit_groups (struct
> die_info *die)
>         = XOBNEWVEC (&COMPUNIT_OBJFILE (cust)->objfile_obstack,
>                      struct symtab *, line_header->file_names_size ());
> 
> +      list_in_scope = get_builder ()->get_file_symbols ();
>        auto &file_names = line_header->file_names ();
>        for (i = 0; i < file_names.size (); ++i)
>         {
> ...
> 
> In summary, the problem was fixed by an earlier commit, and this commit
> was misapplied. I think we should probably revert this one.

FWIW I agree.

Thanks,
Andrew


More information about the Gdb-patches mailing list