X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fdebug-int.lisp;h=a63c1ba0980c0741f3fef3ae4f6164da1b38dbc2;hb=7dd568fb64927be78556ac27f1f0dc60e79cf942;hp=bda0c48b80a7116aefa3dd13f02730dc9564b382;hpb=dfa55a883f94470267b626dae77ce7e7dfac3df6;p=sbcl.git diff --git a/src/code/debug-int.lisp b/src/code/debug-int.lisp index bda0c48..a63c1ba 100644 --- a/src/code/debug-int.lisp +++ b/src/code/debug-int.lisp @@ -967,8 +967,10 @@ ;;; to replace FRAME. The interpreted frame points to FRAME. (defun possibly-an-interpreted-frame (frame up-frame) (if (or (not frame) - (not (eq (debug-function-name (frame-debug-function frame)) - 'sb!eval::internal-apply-loop)) + #!+sb-interpreter (not (eq (debug-function-name (frame-debug-function + frame)) + 'sb!eval::internal-apply-loop)) + #!-sb-interpreter t *debugging-interpreter* (compiled-frame-escaped frame)) frame @@ -1109,7 +1111,7 @@ #!+x86 (defun find-escaped-frame (frame-pointer) (declare (type system-area-pointer frame-pointer)) - (dotimes (index sb!impl::*free-interrupt-context-index* (values nil 0 nil)) + (dotimes (index *free-interrupt-context-index* (values nil 0 nil)) (sb!alien:with-alien ((lisp-interrupt-contexts (array (* os-context-t) nil) :extern)) @@ -1145,7 +1147,7 @@ #!-x86 (defun find-escaped-frame (frame-pointer) (declare (type system-area-pointer frame-pointer)) - (dotimes (index sb!impl::*free-interrupt-context-index* (values nil 0 nil)) + (dotimes (index *free-interrupt-context-index* (values nil 0 nil)) (sb!alien:with-alien ((lisp-interrupt-contexts (array (* os-context-t) nil) :extern)) (let ((scp (sb!alien:deref lisp-interrupt-contexts index))) @@ -1292,7 +1294,7 @@ code-locations at which execution would continue with frame as the top frame if someone threw to the corresponding tag." (let ((catch - #!-gengc (descriptor-sap sb!impl::*current-catch-block*) + #!-gengc (descriptor-sap *current-catch-block*) #!+gengc (mutator-current-catch-block)) (res nil) (fp (frame-pointer (frame-real-frame frame)))) @@ -1449,7 +1451,8 @@ (#.sb!vm:closure-header-type (function-debug-function (%closure-function fun))) (#.sb!vm:funcallable-instance-header-type - (cond ((sb!eval:interpreted-function-p fun) + (cond #!+sb-interpreter + ((sb!eval:interpreted-function-p fun) (make-interpreted-debug-function (or (sb!eval::interpreted-function-definition fun) (sb!eval::convert-interpreted-fun fun)))) @@ -2471,6 +2474,7 @@ (if (indirect-value-cell-p res) (sb!c:value-cell-ref res) res))) + #!+sb-interpreter (interpreted-debug-var (aver (typep frame 'interpreted-frame)) (sb!eval::leaf-value-lambda-var @@ -2814,6 +2818,7 @@ (if (indirect-value-cell-p current-value) (sb!c:value-cell-set current-value value) (set-compiled-debug-var-slot debug-var frame value)))) + #!+sb-interpreter (interpreted-debug-var (aver (typep frame 'interpreted-frame)) (sb!eval::set-leaf-value-lambda-var @@ -2864,13 +2869,13 @@ sb!vm::nfp-offset)) #!-alpha (sap-ref-sap fp - (* sb!vm::nfp-save-offset - sb!vm:word-bytes)) + (* sb!vm::nfp-save-offset + sb!vm:word-bytes)) #!+alpha - (%alpha::make-number-stack-pointer + (sb!vm::make-number-stack-pointer (sap-ref-32 fp - (* sb!vm::nfp-save-offset - sb!vm:word-bytes)))))) + (* sb!vm::nfp-save-offset + sb!vm:word-bytes)))))) ,@body))) (ecase (sb!c:sc-offset-scn sc-offset) ((#.sb!vm:any-reg-sc-number @@ -3748,8 +3753,10 @@ ;; so we just leave it up to the C code. (breakpoint-do-displaced-inst signal-context (breakpoint-data-instruction data)) - ; Under HPUX we can't sigreturn so bp-do-disp-i has to return. - #!-(or hpux irix x86) + ;; Some platforms have no usable sigreturn() call. If your + ;; implementation of arch_do_displaced_inst() doesn't sigreturn(), + ;; add it to this list. + #!-(or hpux irix x86 alpha) (error "BREAKPOINT-DO-DISPLACED-INST returned?")))) (defun invoke-breakpoint-hooks (breakpoints component offset)