On Wed, Apr 28, 2010 at 11:51 AM, Lassi Tuura <[email protected]> wrote: > Hi, > > > Actually, I get failures even after applying this patch. Ironically, I > traced them to the lack of unwind info in src/x86_64/getcontext.S > > > > (gdb) bt > > #0 do_backtrace (may_print=1, get_proc_name=1) at test-async-sig.c:113 > > #1 0x0000000000400f01 in sighandler (signal=<value optimized out>) at > test-async-sig.c:136 > > #2 <signal handler called> > > #3 _Ux86_64_getcontext () at x86_64/getcontext.S:65 > > #4 0x0000000000400c5f in do_backtrace (may_print=0, get_proc_name=0) at > test-async-sig.c:80 > > #5 0x00000000004010bf in main (argc=<value optimized out>, argv=<value > optimized out>) at test-async-sig.c:182 > > > > Your changes are merely exposing an existing bug, not causing them. > > Glad to hear that. Are you waiting for anything else from me on these > patches? >
Actually, compiling with -fasynchronous-unwind-tables + CFI annotations in getcontext.S fixed only one regression (test-async-sig). The other regression (run-ptrace-mapper) is still there. It's a bit harder to debug (gdb doesn't work well). That's the only thing holding your first patch set back. Good run: >_Ux86_64_init_remote: (cursor=0x7fff7a5c1800) >_Ux86_64_dwarf_search_unwind_table: e->fde_offset = c3a4, segbase = 2ae3d541cdfc, debug_frame_base = 0, fde_addr = 2ae3d54291a0 >_Ux86_64_step: (cursor=0x7fff7a5c1800, ip=0x00002ae3d53474ae, cfa=0x00007fffd5e70870) >_Ux86_64_dwarf_search_unwind_table: e->fde_offset = c3a4, segbase = 2ae3d541cdfc, debug_frame_base = 0, fde_addr = 2ae3d54291a0 >_Ux86_64_dwarf_search_unwind_table: e->fde_offset = 40, segbase = 400ab0, debug_frame_base = 0, fde_addr = 400af0 >_Ux86_64_step: (cursor=0x7fff7a5c1800, ip=0x0000000000400918, cfa=0x00007fffd5e708a0) >_Ux86_64_dwarf_search_unwind_table: e->fde_offset = 612c, segbase = 2ae3d541cdfc, debug_frame_base = 0, fde_addr = 2ae3d5422f28 >_Ux86_64_step: (cursor=0x7fff7a5c1800, ip=0x00002ae3d52fb5a6, cfa=0x00007fffd5e708e0) >_Ux86_64_dwarf_search_unwind_table: IP 400768 inside range 400000-400b6c, but no explicit unwind info found >_Ux86_64_step: (cursor=0x7fff7a5c1800, ip=0x0000000000400769, cfa=0x00007fffd5e70990) >_Ux86_64_dwarf_search_unwind_table: IP 400768 inside range 400000-400b6c, but no explicit unwind info found Bad run: >_Ux86_64_init_remote: (cursor=0x7fff7a5c1800) >_Ux86_64_dwarf_search_unwind_table: e->fde_offset = c3a4, segbase = 2ae3d541cdfc, debug_frame_base = 0, fde_addr = 2ae3d54291a0 >_Ux86_64_step: (cursor=0x7fff7a5c1800, ip=0x00002ae3d53474b2, cfa=0x00007fffd5e70898) >_Ux86_64_dwarf_search_unwind_table: e->fde_offset = c3a4, segbase = 2ae3d541cdfc, debug_frame_base = 0, fde_addr = 2ae3d54291a0 >_Ux86_64_step: (cursor=0x7fff7a5c1800, ip=0x00007fffd5e709a0, cfa=0x00007fffd5e708c8) >_Ux86_64_step: [RBP=0x7fffd5e708a8] = 0x100400950 (cfa = 0x7fffd5e708c8) >_Ux86_64_step: Frame Chain [RIP=0x100400958] = 0xffffffffffffffff FAILURE: unw_step() returned -8 for ip=ffffffffffffffff (start ip=2ae3d53474b2) unwind failed with ret=-8 -Arun
_______________________________________________ Libunwind-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/libunwind-devel
