Changeset 6489


Ignore:
Timestamp:
May 9, 2007, 7:53:30 AM (15 years ago)
Author:
gb
Message:

Optionally, invoke debugger-hook on SIGINT.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/level-1/l1-events.lisp

    r6190 r6489  
    9797         (setq *periodic-task-mask* (logior-list *periodic-task-masks*)))))))
    9898
    99 
     99(defparameter *invoke-debugger-hook-on-interrupt* nil)
    100100
    101101(defun force-break-in-listener (p)
    102102  (process-interrupt p
    103103                     #'(lambda ()
    104                          (ignoring-without-interrupts
    105                           (%break-in-frame
    106                            #+ppc-target *fake-stack-frames*
    107                            #+x86-target (or (%current-xcf) (%get-frame-ptr))
    108                            "interrupt signal")
    109                           (clear-input *terminal-io*)))))
     104                         (let* ((condition (condition-arg "interrupt signal" nil 'simple-condition)))
     105                           (ignoring-without-interrupts
     106                            (when *invoke-debugger-hook-on-interrupt*
     107                              (let* ((hook *debugger-hook*)
     108                                     (*debugger-hook* nil))
     109                                (when hook
     110                                  (funcall hook condition hook))))
     111                            (%break-in-frame
     112                             #+ppc-target *fake-stack-frames*
     113                             #+x86-target (or (%current-xcf) (%get-frame-ptr))
     114                             condition)
     115                            (clear-input *terminal-io*))))))
    110116
    111117
Note: See TracChangeset for help on using the changeset viewer.