Changeset 12888 for trunk/source/level-1


Ignore:
Timestamp:
Sep 28, 2009, 2:31:03 PM (10 years ago)
Author:
rme
Message:

Support watching individual cons cells; add "unwatch and contiune" restart.
(r12874 through r12887 from watchpoints branch)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/level-1/x86-trap-support.lisp

    r12817 r12888  
    435435                         (setf (%get-ptr a) (%int-to-ptr i))
    436436                         (%get-object a 0))))
    437                 (%error (make-condition
    438                          'write-to-watched-object
    439                          :address addr
    440                          :object (%int-to-object other))
    441                         nil frame-ptr)))))
     437                (let ((object (%int-to-object other)))
     438                  (restart-case (%error (make-condition
     439                                         'write-to-watched-object
     440                                         :address addr
     441                                         :object object)
     442                                        nil frame-ptr)
     443                    (unwatch ()
     444                      :report (lambda (s)
     445                                (format s "Unwatch ~s and perform the write." object))
     446                      (unwatch object))))))))
    442447          ((= signal #+win32-target 10 #-win32-target #$SIGBUS)
    443448           (if (= code -1)
     
    451456                     frame-ptr)))))
    452457  0)
    453 
Note: See TracChangeset for help on using the changeset viewer.