Re: [patch] gdb_assert -> complaint for weird DWARF

Doug Evans
2014-02-24T21:55:54Z

On Mon, Feb 24, 2014 at 1:43 PM, Jan Kratochvil
<jan.kratochvil@redhat.com> wrote:
> Hi,
>
> PR 16581:
> GDB crash on inherit_abstract_dies infinite recursion
> https://sourceware.org/bugzilla/show_bug.cgi?id=16581
>
> fixed crash from an infinite recursion. But in rare cases the new code can
> now gdb_assert() due to weird DWARF file.
>
> I do not yet fully understand why the DWARF is as it is but just GDB should
> never crash due to invalid DWARF anyway. The "invalid" DWARF I see only in
> Fedora GCC build, not in FSF GCC build, more info at:
> https://bugzilla.redhat.com/show_bug.cgi?id=1069382
> http://people.redhat.com/jkratoch/gcc-debuginfo-4.8.2-7.fc20.x86_64-gnatbind.debug
>
>
> Thanks,
> Jan
>
> gdb/
> 2014-02-24 Jan Kratochvil <jan.kratochvil@redhat.com>
>
> * dwarf2read.c (process_die): Change gdb_assert to complaint.

Obviously gdb shouldn't crash on invalid input, but IWBN if gdb could
have more robust guarantees internally.
[One could argue changing the assert to a complaint is papering over a bug.
Plus gdb's complaint system is off by default, out of sight makes for
out of mind thus such things tend to not get much attention.]

Can you dig into the details of why the assert is tripping?
I'm not comfortable with adding more complaints without at least
including documentation of details.