[movitz-cvs] CVS update: movitz/losp/x86-pc/debugger.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Tue Jul 20 23:53:48 UTC 2004
Update of /project/movitz/cvsroot/movitz/losp/x86-pc
In directory common-lisp.net:/tmp/cvs-serv25217
Modified Files:
debugger.lisp
Log Message:
Some tweaks to backtrace.
Date: Tue Jul 20 16:53:48 2004
Author: ffjeld
Index: movitz/losp/x86-pc/debugger.lisp
diff -u movitz/losp/x86-pc/debugger.lisp:1.17 movitz/losp/x86-pc/debugger.lisp:1.18
--- movitz/losp/x86-pc/debugger.lisp:1.17 Tue Jul 20 05:40:48 2004
+++ movitz/losp/x86-pc/debugger.lisp Tue Jul 20 16:53:48 2004
@@ -10,7 +10,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Fri Nov 22 10:09:18 2002
;;;;
-;;;; $Id: debugger.lisp,v 1.17 2004/07/20 12:40:48 ffjeld Exp $
+;;;; $Id: debugger.lisp,v 1.18 2004/07/20 23:53:48 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -431,8 +431,10 @@
(serious-condition (conditon)
(write-string "#<error printing frame>"))))
-(defun backtrace (&key ((:frame initial-stack-frame)
- (or *debugger-invoked-stack-frame*
+(defun backtrace (&key stack
+ ((:frame initial-stack-frame)
+ (or (and stack (svref%unsafe stack 0))
+ *debugger-invoked-stack-frame*
(current-stack-frame)))
((:spartan *backtrace-be-spartan-p*))
((:fresh-lines *backtrace-do-fresh-lines*) *backtrace-do-fresh-lines*)
@@ -445,7 +447,10 @@
(*print-length* *backtrace-print-length*)
(*print-level* *backtrace-print-level*))
(loop with conflate-count = 0 with count = 0
- for stack-frame = initial-stack-frame then (stack-frame-uplink stack-frame)
+ for stack-frame = initial-stack-frame
+ then (let ((uplink (stack-frame-uplink stack-frame)))
+ (assert (> uplink stack-frame))
+ uplink)
as funobj = (stack-frame-funobj stack-frame t)
do (flet ((print-leadin (stack-frame count conflate-count)
(when *backtrace-do-fresh-lines*
More information about the Movitz-cvs
mailing list