static void overflow_handler(int emergency, stackoverflow_context_t scp) { if ( 1 == emergency ) { write(2, "stack emergency\n", strlen("stack emergency" + 2)); exit(1); } else { Sigcause = sig_overflow; sigsegv_leave_handler(_main_cont, NULL, NULL, NULL); } }
static void _lo_signal_handle_over(int emergency, stackoverflow_context_t scp) { if ( u2_Critical ) { // Careful not to grow the stack during critical sections. // write(2, "stack disaster\n", strlen("stack disaster" + 2)); abort(); } #if 0 if ( 1 == emergency ) { write(2, "stack emergency\n", strlen("stack emergency" + 2)); abort(); } else #endif { Sigcause = sig_overflow; sigsegv_leave_handler(_lo_cont, NULL, NULL, NULL); } }
int ss_handler(void* fault_address, int serious) { printf("***Exception: Memory referenced at %p\n", fault_address); sigprocmask (SIG_SETMASK, &mainsigset, NULL); return sigsegv_leave_handler (handler_continuation, NULL, NULL, NULL); }