This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
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
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |