[movitz-cvs] CVS update: movitz/procfs-image.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Sun Apr 24 20:36:44 UTC 2005
Update of /project/movitz/cvsroot/movitz
In directory common-lisp.net:/tmp/cvs-serv16653
Modified Files:
procfs-image.lisp
Log Message:
Some backtrace tweaks.
Date: Sun Apr 24 22:36:44 2005
Author: ffjeld
Index: movitz/procfs-image.lisp
diff -u movitz/procfs-image.lisp:1.22 movitz/procfs-image.lisp:1.23
--- movitz/procfs-image.lisp:1.22 Tue Jan 4 17:56:44 2005
+++ movitz/procfs-image.lisp Sun Apr 24 22:36:44 2005
@@ -10,7 +10,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Fri Aug 24 11:39:37 2001
;;;;
-;;;; $Id: procfs-image.lisp,v 1.22 2005/01/04 16:56:44 ffjeld Exp $
+;;;; $Id: procfs-image.lisp,v 1.23 2005/04/24 20:36:44 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -165,7 +165,8 @@
(get-word stack-frame))
(defun stack-frame-funobj (stack-frame)
- (when (zerop (ldb (byte 2 0) stack-frame))
+ (when (and (plusp stack-frame)
+ (zerop (ldb (byte 2 0) stack-frame)))
(let ((x (movitz-word (get-word (- stack-frame 4)))))
(and (typep x 'movitz-funobj) x))))
@@ -196,6 +197,7 @@
(image-register32 *image* :esi))
(let ((*print-length* 20))
(loop for stack-frame = (current-stack-frame) then (previous-stack-frame stack-frame)
+ while (plusp stack-frame)
unless (zerop (mod stack-frame 4))
do (format t "[frame #x~8,'0x]" stack-frame)
(loop-finish)
@@ -228,7 +230,9 @@
(debug-get-object (get-word (+ stack-frame -12)) spartan)))
(when print-returns
(format t " (#x~X)" (stack-frame-return-address stack-frame)))))
- (t (write (movitz-print movitz-name)))))
+ (t (when print-frames
+ (format t "~S " (truncate stack-frame 4)))
+ (write (movitz-print movitz-name)))))
do (format t "~& => ")))
(values))
More information about the Movitz-cvs
mailing list