[movitz-cvs] CVS movitz/losp/x86-pc
ffjeld
ffjeld at common-lisp.net
Tue Mar 21 20:13:12 UTC 2006
Update of /project/movitz/cvsroot/movitz/losp/x86-pc
In directory clnet:/tmp/cvs-serv1496
Modified Files:
debugger.lisp
Log Message:
Tweak backtrace to recognize an apply-frame's numargs.
--- /project/movitz/cvsroot/movitz/losp/x86-pc/debugger.lisp 2005/08/31 22:34:58 1.41
+++ /project/movitz/cvsroot/movitz/losp/x86-pc/debugger.lisp 2006/03/21 20:13:12 1.42
@@ -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.41 2005/08/31 22:34:58 ffjeld Exp $
+;;;; $Id: debugger.lisp,v 1.42 2006/03/21 20:13:12 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -49,7 +49,7 @@
(defvar *backtrace-do-conflate* t)
(defvar *backtrace-length* 14)
-(defvar *backtrace-max-args* 10)
+(defvar *backtrace-max-args* 16)
(defvar *backtrace-stack-frame-barrier* nil)
(defvar *backtrace-do-fresh-lines* t)
(defvar *backtrace-print-length* 3)
@@ -158,6 +158,10 @@
((and (= #x33 opcode0) (= #xc9 opcode1))
;; XORL :ECX :ECX
0)
+ ((eq funobj #'apply)
+ (- (stack-frame-uplink stack frame)
+ frame
+ 2))
(t ;; now we should search further for where ecx may be set..
(format *debug-io* "{no ECX at ~D in ~S, opcode #x~X #x~X}"
call-site funobj opcode0 opcode1)
@@ -341,7 +345,7 @@
(#x52 (:set-result (-2)))))))
(defun funobj-stack-frame-map (funobj &optional numargs)
- "Try funobj's stack-frame map, which is a list that says
+ "Try to find funobj's stack-frame map, which is a list that says
what the stack-frame contains at that position. Some funobjs' map
depend on the number of arguments presented to it, so numargs can
be provided for those cases."
More information about the Movitz-cvs
mailing list