Blob Blame History Raw
diff -Nurp jack-1.9.8.orig/dbus/sigsegv.c jack-1.9.8/dbus/sigsegv.c
--- jack-1.9.8.orig/dbus/sigsegv.c	2011-12-19 12:54:24.000000000 +0100
+++ jack-1.9.8/dbus/sigsegv.c	2012-06-03 15:56:31.306697873 +0200
@@ -60,6 +60,7 @@ static void signal_segv(int signum, sigi
     static const char *si_codes[3] = {"", "SEGV_MAPERR", "SEGV_ACCERR"};
 
     size_t i;
+    const char *si_code_str; 
     ucontext_t *ucontext = (ucontext_t*)ptr;
 
 #if defined(SIGSEGV_STACK_X86) || defined(SIGSEGV_STACK_IA64)
@@ -94,10 +95,14 @@ static void signal_segv(int signum, sigi
         jack_error("Unknown bad signal catched!");
     }
 
-    jack_error("info.si_signo = %d", signum);
+    if (info->si_code >= 0 && info->si_code < 3)
+        si_code_str = si_codes[info->si_code];
+    else
+        si_code_str = "unknown"; jack_error("info.si_signo = %d", signum);
+
     jack_error("info.si_errno = %d", info->si_errno);
     jack_error("info.si_code  = %d (%s)", info->si_code, si_codes[info->si_code]);
-    jack_error("info.si_addr  = %p", info->si_addr);
+    jack_error("info.si_code  = %d (%s)", info->si_code, si_code_str);
 #if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__)
     for(i = 0; i < NGREG; i++)
         jack_error("reg[%02d]       = 0x" REGFORMAT, i,