Hi, I'm using backtrace() to obtain call context by sending signals. But program segfaults if the first instruction of a function receives signal for backtrace.
ARM unwinding in libgcc uses "return_address -= 2" to get the caller address. It is OK for normal function call with "bl xxx". But it cannot handle signal frame case because "return_address -= 2" may go to the preceding function. See get_eit_entry() in libgcc/unwind-arm-common.inc. Both GDB and libunwind take signal frame as a special case on ARM unwinding. Does libgcc also need to fix the case? -- Regards, Peng