X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fmacros.lisp;h=8a1dc871a366f93391798ea58acf149e78651b5b;hb=5de74c72e5a9522c7fdd3dbb31a39641e9de8877;hp=73254c01b508dafaa15f2e016b756c7301a50cf2;hpb=b729639ed79f74e60d2c359eefa638198a9f6e6a;p=sbcl.git diff --git a/src/compiler/x86/macros.lisp b/src/compiler/x86/macros.lisp index 73254c0..8a1dc87 100644 --- a/src/compiler/x86/macros.lisp +++ b/src/compiler/x86/macros.lisp @@ -276,7 +276,15 @@ (eval-when (#-sb-xc :compile-toplevel :load-toplevel :execute) (defun emit-error-break (vop kind code values) (let ((vector (gensym))) - `((inst int 3) ; i386 breakpoint instruction + `((progn + #-darwin (inst int 3) ; i386 breakpoint instruction + ;; CLH 20060314 + ;; On Darwin, we need to use #x0b0f instead of int3 in order + ;; to generate a SIGILL instead of a SIGTRAP as darwin/x86 + ;; doesn't seem to be reliably firing SIGTRAP + ;; handlers. Hopefully this will be fixed by Apple at a + ;; later date. + #+darwin (inst word #x0b0f)) ;; The return PC points here; note the location for the debugger. (let ((vop ,vop)) (when vop