Added SIGSEGV diagnostics with 3m

svn: r12806
This commit is contained in:
Kevin Tew 2008-12-12 19:35:29 +00:00
parent 1af924d8de
commit 653db9dcbe

View File

@ -17,8 +17,21 @@
# include <signal.h>
void fault_handler(int sn, struct siginfo *si, void *ctx)
{
if (!designate_modified(si->si_addr))
void *p = si->si_addr;
if (si->si_code != SEGV_ACCERR) { /*SEGV_MAPERR*/
printf("SIGSEGV fault on %p\n", p);
abort();
}
if (!designate_modified(p)) {
if (si->si_code == SEGV_ACCERR) {
printf("mprotect fault on %p\n", p);
}
else {
printf("?? %i fault on %p\n", si->si_code, p);
}
abort();
}
# define NEED_SIGACTION
# define USE_SIGACTON_SIGNAL_KIND SIGSEGV
}