Hi, >> # ./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 [...]
>> access_reg: ebp -> bfb4ebe8 >> access_mem: mem[bfb4ebec] -> 0 >> _Ux86_dwarf_step: returning 0 >> _Ux86_step: returning 0 > Segmentation fault Does it actually crash in libunwind? From above it sounds like it already returned fine to your application and crashes there. That said, a possible cause is that something (not necessarily libunwind) is attempting to access EBP-based frame chain, but the next EBP is zero. That might be because the parent is a signal frame, and isn't detected as such. Are you handling that condition properly in your application? How do you build and what sort of libc do you have? Does it have the signal trampoline annotated with 'S' dwarf augmentation option? Do you have problems with the test suite? FWIW, I don't really have experience using libunwind with ia32, only x86-64. I fixed a number of related issues in x86-64 side, e.g. signal vs. normal frame detection, so it's possible ia32 has similar issues which need to be fixed. But it's a great deal more complex since there are far more legacy linux ia32 configurations around. Regards, Lassi _______________________________________________ Libunwind-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/libunwind-devel
