From 653db9dcbe3cb2e7192eb01b22b906a015e3ddc1 Mon Sep 17 00:00:00 2001 From: Kevin Tew Date: Fri, 12 Dec 2008 19:35:29 +0000 Subject: [PATCH] Added SIGSEGV diagnostics with 3m svn: r12806 --- src/mzscheme/gc2/sighand.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/mzscheme/gc2/sighand.c b/src/mzscheme/gc2/sighand.c index db9145ea54..cd4e8a8f28 100644 --- a/src/mzscheme/gc2/sighand.c +++ b/src/mzscheme/gc2/sighand.c @@ -17,8 +17,21 @@ # include 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 }