[Top][All Lists]
[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
- [Libunwind-devel] unwinding from signal handler (ARM), Sven Neumann, 2011/08/19
- Re: [Libunwind-devel] unwinding from signal handler (ARM), Sven Neumann, 2011/08/19
- Re: [Libunwind-devel] unwinding from signal handler (ARM), Ken Werner, 2011/08/19
- Re: [Libunwind-devel] unwinding from signal handler (ARM), Sven Neumann, 2011/08/19
- Re: [Libunwind-devel] unwinding from signal handler (ARM), Ken Werner, 2011/08/19
- Re: [Libunwind-devel] unwinding from signal handler (ARM), Sven Neumann, 2011/08/22
- Re: [Libunwind-devel] unwinding from signal handler (i586),
Sven Neumann <=
- Re: [Libunwind-devel] unwinding from signal handler (i586), Lassi Tuura, 2011/08/22
- Re: [Libunwind-devel] unwinding from signal handler (i586), Sven Neumann, 2011/08/22
- Re: [Libunwind-devel] unwinding from signal handler (i586), Arun Sharma, 2011/08/22
- Re: [Libunwind-devel] unwinding from signal handler (i586), Ken Werner, 2011/08/30
- Re: [Libunwind-devel] unwinding from signal handler (ARM), Ken Werner, 2011/08/29
- Re: [Libunwind-devel] unwinding from signal handler (ARM), Ken Werner, 2011/08/29
- Re: [Libunwind-devel] unwinding from signal handler (ARM), Ken Werner, 2011/08/30