0.9.16.38:
[sbcl.git] / src / runtime / x86-arch.c
index ba0cf36..4540142 100644 (file)
@@ -107,6 +107,8 @@ void arch_skip_instruction(os_context_t *context)
 
         case trap_PendingInterrupt:
         case trap_Halt:
+        case trap_SingleStepAround:
+        case trap_SingleStepBefore:
             /* only needed to skip the Code */
             break;
 
@@ -304,6 +306,14 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context)
             (int)handle_fun_end_breakpoint(signal, info, context);
         break;
 
+    case trap_SingleStepAround:
+    case trap_SingleStepBefore:
+        arch_skip_instruction(context);
+        /* On x86 the fdefn / function is always in EAX, so we pass 0
+         * as the register_offset. */
+        handle_single_step_trap(context, trap, 0);
+        break;
+
     default:
         FSHOW((stderr,"/[C--trap default %d %d %x]\n",
                signal, trap, context));