+;;; like BREAK, but without rebinding *DEBUGGER-HOOK* to NIL, so that
+;;; we can use it in system code (e.g. in SIGINT handling) without
+;;; messing up --disable-debugger mode (which works by setting
+;;; *DEBUGGER-HOOK*); or for that matter, without messing up ordinary
+;;; applications which try to do similar things with *DEBUGGER-HOOK*
+(defun %break (what &optional (datum "break") &rest arguments)
+ (infinite-error-protect
+ (with-simple-restart (continue "Return from ~S." what)
+ (let ((sb!debug:*stack-top-hint* (maybe-find-stack-top-hint)))
+ (invoke-debugger
+ (coerce-to-condition datum arguments 'simple-condition what)))))
+ nil)
+