1.0.1.1:
[sbcl.git] / src / runtime / x86-arch.c
index 521369c..c32aed7 100644 (file)
@@ -222,12 +222,12 @@ restore_breakpoint_from_single_step(os_context_t * context)
 #endif
     /* Re-install the breakpoint if possible. */
     if (*os_context_pc_addr(context) == (int)single_stepping + 1) {
-       fprintf(stderr, "warning: couldn't reinstall breakpoint\n");
+        fprintf(stderr, "warning: couldn't reinstall breakpoint\n");
     } else {
-       *((char *)single_stepping) = BREAKPOINT_INST;       /* x86 INT3 */
-       *((char *)single_stepping+1) = trap_Breakpoint;
+        *((char *)single_stepping) = BREAKPOINT_INST;       /* x86 INT3 */
+        *((char *)single_stepping+1) = trap_Breakpoint;
     }
-    
+
     single_stepping = NULL;
     return;
 }
@@ -241,8 +241,8 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context)
 #ifndef LISP_FEATURE_WIN32
     /* On Windows this is done in the SE handler. */
     if (single_stepping && (signal==SIGTRAP)) {
-       restore_breakpoint_from_single_step(context);
-       return;
+        restore_breakpoint_from_single_step(context);
+        return;
     }
 #endif
 
@@ -328,14 +328,14 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context)
     }
 }
 
-static void
+void
 sigill_handler(int signal, siginfo_t *siginfo, void *void_context) {
     os_context_t *context = (os_context_t*)void_context;
 
     /* Triggering SIGTRAP using int3 is unreliable on OS X/x86, so
      * we need to use illegal instructions for traps.
      */
-#if defined(LISP_FEATURE_DARWIN)
+#if defined(LISP_FEATURE_DARWIN) && !defined(LISP_FEATURE_MACH_EXCEPTION_HANDLER)
     if (*((unsigned short *)*os_context_pc_addr(context)) == 0x0b0f) {
         *os_context_pc_addr(context) += 2;
         return sigtrap_handler(signal, siginfo, void_context);
@@ -361,7 +361,7 @@ arch_install_interrupt_handlers()
      * OS I haven't tested on?) and we have to go back to the old CMU
      * CL way, I hope there will at least be a comment to explain
      * why.. -- WHN 2001-06-07 */
-#ifndef LISP_FEATURE_WIN32
+#if !defined(LISP_FEATURE_WIN32) && !defined(LISP_FEATURE_MACH_EXCEPTION_HANDLER)
     undoably_install_low_level_interrupt_handler(SIGILL , sigill_handler);
     undoably_install_low_level_interrupt_handler(SIGTRAP, sigtrap_handler);
 #endif