[movitz-cvs] CVS update: movitz/losp/muerte/inspect.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Wed Feb 2 09:12:55 UTC 2005


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv23031

Modified Files:
	inspect.lisp 
Log Message:
Teach stack-frame-call-site about DIT-frames.

Date: Wed Feb  2 10:12:54 2005
Author: ffjeld

Index: movitz/losp/muerte/inspect.lisp
diff -u movitz/losp/muerte/inspect.lisp:1.46 movitz/losp/muerte/inspect.lisp:1.47
--- movitz/losp/muerte/inspect.lisp:1.46	Tue Jan 25 14:49:51 2005
+++ movitz/losp/muerte/inspect.lisp	Wed Feb  2 10:12:54 2005
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Fri Oct 24 09:50:41 2003
 ;;;;                
-;;;; $Id: inspect.lisp,v 1.46 2005/01/25 13:49:51 ffjeld Exp $
+;;;; $Id: inspect.lisp,v 1.47 2005/02/02 09:12:54 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -70,12 +70,19 @@
   (let ((uplink (stack-frame-uplink stack frame)))
     (when (and uplink (not (= 0 uplink)))
       (let ((funobj (stack-frame-funobj stack uplink)))
-	(when (typep funobj 'function)
+	(cond
+	 ((typep funobj 'function)
 	  (let* ((code-vector (funobj-code-vector funobj))
 		 (eip (stack-frame-ref stack frame 1 :unsigned-byte32))
 		 (delta (- eip 8 (* #.movitz::+movitz-fixnum-factor+ (object-location code-vector)))))
 	    (when (below delta (length code-vector))
-	      (values delta code-vector funobj))))))))
+	      (values delta code-vector funobj))))
+	 ((eq 0 funobj)
+	  (let* ((code-vector (symbol-value 'default-interrupt-trampoline))
+		 (eip (stack-frame-ref stack frame 1 :unsigned-byte32))
+		 (delta (- eip 8 (* #.movitz::+movitz-fixnum-factor+ (object-location code-vector)))))
+	    (when (below delta (length code-vector))
+	      (values delta code-vector funobj)))))))))
 
 (defun stack-frame-ref (stack frame index &optional (type ':lisp))
   "If stack is provided, stack-frame is an index into that stack vector.




More information about the Movitz-cvs mailing list