break; \
} \
\
- i = (nptrs > 2) ? 2 : 0; \
dlog_print(DLOG_ERROR, "AUL_BACKTRACE", \
"%s backtrace() returns %d address", \
- strings[i], nptrs - i); \
+ strings[0], nptrs); \
\
for (i = 0; i < nptrs; i++) { \
dladdr(buffer[i], &info); \
- if (i > 1) { \
- dlog_print(DLOG_ERROR, "AUL_BACKTRACE", \
- "[%2d] %s %s\n", \
- i - 2, \
- info.dli_sname ? info.dli_sname : "?", \
- strings[i]); \
- } \
+ dlog_print(DLOG_ERROR, "AUL_BACKTRACE", \
+ "[%2d] %s %s\n", \
+ i, \
+ info.dli_sname ? info.dli_sname : "?", \
+ strings[i]); \
} \
} while (0)
aul_signo = __get_aul_signo(signo);
if (aul_signo != -1) {
- sigaction(signo, &__old_action[aul_signo], NULL);
- raise(signo);
+ if (__old_action[aul_signo].sa_sigaction) {
+ __old_action[aul_signo].sa_sigaction(signo, info, arg);
+ } else {
+ sigaction(signo, &__old_action[aul_signo], NULL);
+ raise(signo);
+ }
}
}
#endif /* TIZEN_FEATURE_DEBUG_MODE */