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