On Mon, Mar 31, 2008 at 1:25 AM, Ralph Loader <[EMAIL PROTECTED]> wrote:
> > > > > > 2. unwinding with -fomit-frame-pointer doesn't work and often > > > segfaults. > > > > > > > Which version of libunwind are you testing? > > I first noticed problems with whatever Fedora rawhide has. So I > built 0.99-alpha myself and still have the same problems. > You can compile with --enable-debug and then try: UNW_DEBUG_LEVEL=15 ./unw-test to see what's going on. Looks like some of my patches that worked around the problem on x86_64 need to be back ported to x86. http://git.kernel.org/gitweb.cgi?p=libs/libunwind/libunwind.git;a=blobdiff;f=src/x86_64/Gis_signal_frame.c;h=67eab27ff0f775670643dc1acb7da7cc1f91ac57;hp=221eab89266a5ba6274a1030ee67b241f96e6401;hb=7c0907634d5639158ed762bb2d14f1ac06228615;hpb=58888a5060d5e732c1ab1f0bf6a6c480153dabbd http://git.kernel.org/gitweb.cgi?p=libs/libunwind/libunwind.git;a=commit;h=527225e492553b997d16adca7cc3bb472d5ef628 With these patches, unw_step() will return 0 instead of seg faulting. The real problem however needs to be fixed. This is how far I got: >_Ux86_step: (cursor=0xffffc584, ip=0x08048771) >_Ux86_dwarf_find_proc_info: looking for IP=0x8048770 >callback: checking , base=0x0) >callback: found table `': segbase=0x8048cd0, len=110, gp=0x804aff4, table_data=0x8048cdc >_Ux86_dwarf_search_unwind_table: ip=0x8048770, start_ip=0x804875f >_Ux86_dwarf_extract_proc_info_from_fde: FDE @ 0x8048f0c >parse_cie: CIE parsed OK, augmentation = "", handler=0x0 >_Ux86_dwarf_extract_proc_info_from_fde: FDE covers IP 0x804875f-0x8048771, LSDA=0x0 >run_cfi_program: CFA_def_cfa r4+0x4 >run_cfi_program: CFA_offset r8 at cfa+0xfffffffc >run_cfi_program: CFA_advance_loc to 0x8048760 >run_cfi_program: CFA_def_cfa_offset 0x8 >run_cfi_program: CFA_offset r3 at cfa+0xfffffff8 >_Ux86_dwarf_step: returning 1 >_Ux86_step: returning 1 >_Ux86_step: (cursor=0xffffc584, ip=0x000000e9) >_Ux86_dwarf_find_proc_info: looking for IP=0xe8 Obviously, ip=0x000000e9 is bogus. We need to figure out if the compiler generated bad unwind descriptors or it was libunwind's fault. I'll keep looking. -Arun
_______________________________________________ Libunwind-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/libunwind-devel
