- Timestamp:
- May 7, 2008, 9:17:55 PM (17 years ago)
- File:
-
- 1 edited
-
branches/ia32/lib/x86-backtrace.lisp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/lib/x86-backtrace.lisp
r9149 r9404 38 38 39 39 (defun xcf-p (p) 40 (eql 0 (%fixnum-ref p x8664::lisp-frame.return-address)))40 (eql 0 (%fixnum-ref p target::lisp-frame.return-address))) 41 41 42 42 (defun %current-xcf () … … 48 48 ;;; Try to determine the program counter value, relative to an xcf's nominal function. 49 49 (defun pc-from-xcf (xcf) 50 (let* ((nominal-function (%fixnum-ref xcf x8664::xcf.nominal-function))51 (containing-object (%fixnum-ref xcf x8664::xcf.containing-object)))50 (let* ((nominal-function (%fixnum-ref xcf target::xcf.nominal-function)) 51 (containing-object (%fixnum-ref xcf target::xcf.containing-object))) 52 52 (when (typep nominal-function 'function) 53 53 (if (eq containing-object (function-to-function-vector nominal-function)) 54 (- (%fixnum-ref xcf x8664::xcf.relative-pc) 55 x8664::tag-function) 56 (let* ((tra (%fixnum-ref xcf x8664::xcf.ra0))) 57 (if (and (= (lisptag tra) x8664::tag-tra) 54 (- (%fixnum-ref xcf target::xcf.relative-pc) 55 #+x8632-target x8632::fulltag-misc 56 #+x8664-target x8664::tag-function) 57 (let* ((tra (%fixnum-ref xcf target::xcf.ra0))) 58 (if (and #+x8664-target (= (lisptag tra) x8664::tag-tra) 59 #+x8632-target (= (fulltag tra) x8632::fulltag-tra) 58 60 (eq nominal-function (%return-address-function tra))) 59 61 (%return-address-offset tra))))))) … … 62 64 (if (xcf-p p) 63 65 (values 64 (%fixnum-ref p x8664::xcf.nominal-function)66 (%fixnum-ref p target::xcf.nominal-function) 65 67 (pc-from-xcf p)) 66 68 (%cfp-lfun p)))
Note:
See TracChangeset
for help on using the changeset viewer.
