Bug#334112: libc6: SIGSEGV in linear_search_fdes
On Sat, Oct 15, 2005 at 09:13:00AM -0700, John David Anglin wrote:
> Package: libc6
> Version: 2.3.5-6.0.1
> Severity: important
>
>
> DWARF2 exception support is broken due to bad EH data in the .eh_frame
> section of /lib/libc-2.3.5.so.
>
> After installation of libc6 version 2.3.5-6.0.1, a number of regressions
> were observed in the GCC 4.0 and 4.1 testsuites. The following failure
> occurs in g++.dg/eh/forced1.C:
You're right that there is a missing terminator (there's a patch on
libc-alpha for that), but I would not expect it to cause trouble. It's
not needed with sorted tables in .eh_frame_hdr, which IIRC all ports
ought to have (and it's not a new problem, either). Very curious.
>
> (gdb) r
> Starting program: /home/dave/gcc-4.1/objdir/gcc/testsuite/forced1.xg
>
> Program received signal SIGSEGV, Segmentation fault.
> linear_search_fdes (ob=0xc004a1d4, this_fde=0x40acba54, pc=0x4099d663)
> at unwind-dw2-fde.c:776
> 776 in unwind-dw2-fde.c
> (gdb) bt
> #0 linear_search_fdes (ob=0xc004a1d4, this_fde=0x40acba54, pc=0x4099d663)
> at unwind-dw2-fde.c:776
> #1 0x401ba798 in _Unwind_IteratePhdrCallback (info=Variable "info" is not available.
> )
> at ../../gcc/gcc/unwind-dw2-fde-glibc.c:386
Could you check for me why this failed:
if (hdr->fde_count_enc != DW_EH_PE_omit
&& hdr->table_enc == (DW_EH_PE_datarel | DW_EH_PE_sdata4))
Do you have no search table, or is the encoding wrong?
--
Daniel Jacobowitz
CodeSourcery, LLC
Reply to: