libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Libunwind-devel] unwinding from signal handler (i586)


From: Sven Neumann
Subject: Re: [Libunwind-devel] unwinding from signal handler (i586)
Date: Mon, 22 Aug 2011 11:50:43 +0200

Hi,

On Mon, 2011-08-22 at 11:41 +0200, Sven Neumann wrote:

> This provides a solution for us on the ARM platform. Now we also have an
> x86 device, an AMD Geode to be more precise. It would be nice if the
> same code worked on this platform as well. But it appears to crash:
> 
> # ./main 
> standard frame        ip:  0x80488f3, sp: 0xbfbcea00   sig_handler
> Segmentation fault
> 
> I will try to find some time to debug this further...

In the hope that it helps, here's the libunwind debug output from this
segmentation fault:

# UNW_DEBUG_LEVEL=9999 ./main 
 >_Ux86_init_local: (cursor=0xbfb4e8f0)
            >access_reg: eip -> 8048927
            >access_reg: esp -> bfb4e6d0
.
                >_Uelf32_lookup_symbol: symtab=0x1dc[11], strtab=0x37c
                >_Uelf32_lookup_symbol: 0x00000000080485f0 info=0x12 _init
                >_Uelf32_lookup_symbol: 0x000000000804872c info=0x12 _start
                >_Uelf32_lookup_symbol: 0x0000000008048a3c info=0x12 _fini
                >_Uelf32_lookup_symbol: symtab=0x15c8[2], strtab=0x1ad8
                >_Uelf32_lookup_symbol: 0x0000000008048754 info=0x02 
__do_global_dtors_aux
                >_Uelf32_lookup_symbol: 0x00000000080487b1 info=0x02 frame_dummy
                >_Uelf32_lookup_symbol: 0x0000000008048a1c info=0x02 
__do_global_ctors_aux
                >_Uelf32_lookup_symbol: 0x0000000008048905 info=0x02 sig_handler
                >_Uelf32_lookup_symbol: 0x00000000080485f0 info=0x12 _init
                >_Uelf32_lookup_symbol: 0x000000000804872c info=0x12 _start
                >_Uelf32_lookup_symbol: 0x0000000008048804 info=0x12 main
                >_Uelf32_lookup_symbol: 0x0000000008048a3c info=0x12 _fini
                >_Uelf32_lookup_symbol: 0x0000000008048750 info=0x12 
__get_pc_thunk_bx
                >access_mem: mem[8048927] -> 8d535f5e
                >access_mem: mem[804892b] -> fffd089d
                >_Ux86_is_signal_frame: returning 0
standard frame  ip:  0x8048927, sp: 0xbfb4e6d0   sig_handler
 >_Ux86_step: (cursor=0xbfb4e8f0, ip=0x08048927)
                >get_rs_cache: get_rs_cache: acquiring lock
              >_Ux86_dwarf_find_proc_info: looking for IP=0x8048926
               >_Ux86_dwarf_callback: checking ./main, base=0x0)
                >access_mem: mem[8048b08] -> 18
                >access_mem: mem[8048b08] -> 18
                >access_mem: mem[8048b08] -> 18
                >access_mem: mem[8048b08] -> 18
                >access_mem: mem[8048b0c] -> 2
                >access_mem: mem[8048b0c] -> 2
                >access_mem: mem[8048b0c] -> 2
                >access_mem: mem[8048b0c] -> 2
               >_Ux86_dwarf_callback: found table `./main': segbase=0x8048b04, 
len=4, gp=0x8049c8c, table_data=0x8048b10
 >lookup: e->start_ip_offset = fffffe01
               >_Ux86_dwarf_search_unwind_table: ip=0x8048926, 
start_ip=0xfffffe01
 >_Ux86_dwarf_search_unwind_table: e->fde_offset = 64, segbase = 8048b04, 
 >debug_frame_base = 0, fde_addr = 8048b68
            >_Ux86_dwarf_extract_proc_info_from_fde: FDE @ 0x8048b68
                >access_mem: mem[8048b68] -> 20
                >access_mem: mem[8048b68] -> 20
                >access_mem: mem[8048b68] -> 20
                >access_mem: mem[8048b68] -> 20
                >access_mem: mem[8048b6c] -> 4c
                >access_mem: mem[8048b6c] -> 4c
                >access_mem: mem[8048b6c] -> 4c
                >access_mem: mem[8048b6c] -> 4c
               >_Ux86_dwarf_extract_proc_info_from_fde: looking for CIE at 
address 8048b20
                >access_mem: mem[8048b20] -> 10
                >access_mem: mem[8048b20] -> 10
                >access_mem: mem[8048b20] -> 10
                >access_mem: mem[8048b20] -> 10
                >access_mem: mem[8048b24] -> 0
                >access_mem: mem[8048b24] -> 0
                >access_mem: mem[8048b24] -> 0
                >access_mem: mem[8048b24] -> 0
                >access_mem: mem[8048b28] -> 7c010001
                >access_mem: mem[8048b28] -> 7c010001
                >access_mem: mem[8048b28] -> 7c010001
                >access_mem: mem[8048b28] -> 7c010001
                >access_mem: mem[8048b2c] -> 4040c08
               >parse_cie: CIE parsed OK, augmentation = "", handler=0x0
                >access_mem: mem[8048b70] -> 8048905
                >access_mem: mem[8048b70] -> 8048905
                >access_mem: mem[8048b70] -> 8048905
                >access_mem: mem[8048b70] -> 8048905
                >access_mem: mem[8048b74] -> 114
                >access_mem: mem[8048b74] -> 114
                >access_mem: mem[8048b74] -> 114
                >access_mem: mem[8048b74] -> 114
               >_Ux86_dwarf_extract_proc_info_from_fde: FDE covers IP 
0x8048905-0x8048a19, LSDA=0x0
                >access_mem: mem[8048b2c] -> 4040c08
                >access_mem: mem[8048b2c] -> 4040c08
                >access_mem: mem[8048b2c] -> 4040c08
               >run_cfi_program: CFA_def_cfa r4+0x4
                >access_mem: mem[8048b30] -> 188
                >access_mem: mem[8048b30] -> 188
               >run_cfi_program: CFA_offset r8 at cfa+0xfffffffc
                >access_mem: mem[8048b30] -> 188
                >access_mem: mem[8048b30] -> 188
                >access_mem: mem[8048b78] -> 85080e41
               >run_cfi_program: CFA_advance_loc to 0x8048906
                >access_mem: mem[8048b78] -> 85080e41
                >access_mem: mem[8048b78] -> 85080e41
               >run_cfi_program: CFA_def_cfa_offset 0x8
                >access_mem: mem[8048b78] -> 85080e41
                >access_mem: mem[8048b7c] -> 50d4202
               >run_cfi_program: CFA_offset r5 at cfa+0xfffffff8
                >access_mem: mem[8048b7c] -> 50d4202
               >run_cfi_program: CFA_advance_loc to 0x8048908
                >access_mem: mem[8048b7c] -> 50d4202
                >access_mem: mem[8048b7c] -> 50d4202
               >run_cfi_program: CFA_def_cfa_register r5
                >access_mem: mem[8048b80] -> 86058349
               >run_cfi_program: CFA_advance_loc to 0x8048911
                >access_mem: mem[8048b80] -> 86058349
                >access_mem: mem[8048b80] -> 86058349
               >run_cfi_program: CFA_offset r3 at cfa+0xffffffec
                >access_mem: mem[8048b80] -> 86058349
                >access_mem: mem[8048b84] -> 51038704
               >run_cfi_program: CFA_offset r6 at cfa+0xfffffff0
                >access_mem: mem[8048b84] -> 51038704
                >access_mem: mem[8048b84] -> 51038704
               >run_cfi_program: CFA_offset r7 at cfa+0xfffffff4
                >access_mem: mem[8048b84] -> 51038704
               >run_cfi_program: CFA_advance_loc to 0x8048922
                >access_mem: mem[8048b88] -> 102e
                >access_mem: mem[8048b88] -> 102e
               >run_cfi_program: CFA_GNU_args_size 16
                >access_mem: mem[8048b88] -> 102e
                >access_mem: mem[8048b88] -> 102e
                >put_rs_cache: unmasking signals/interrupts and releasing lock
            >access_reg: ebp -> bfb4ebe8
                >access_mem: mem[bfb4ebec] -> 0
               >_Ux86_dwarf_step: returning 0
  >_Ux86_step: returning 0
Segmentation fault





reply via email to

[Prev in Thread] Current Thread [Next in Thread]