diff --git a/code/debug-int.lisp b/code/debug-int.lisp index f0b99301a5fa0d74d8a6a10b47f38a89ff43127b..485cde3e595791cd6fb8b3a11d67d15e685ec327 100644 --- a/code/debug-int.lisp +++ b/code/debug-int.lisp @@ -784,12 +784,20 @@ (declare (simple-vector function-map)) (if (= len 1) (make-compiled-debug-function (svref function-map 0) component) - (let ((i 1)) + (let ((i 1) + (elsewhere-p + (>= pc (c::compiled-debug-function-elsewhere-pc + (svref function-map 0))))) (declare (type c::index i)) (loop - (when (or (= i len) (< pc (svref function-map i))) - (return (make-compiled-debug-function (svref function-map (1- i)) - component))) + (when (or (= i len) + (< pc (if elsewhere-p + (c::compiled-debug-function-elsewhere-pc + (svref function-map (1+ i))) + (svref function-map i)))) + (return (make-compiled-debug-function + (svref function-map (1- i)) + component))) (incf i 2))))))) ;;; FUNCTION-CODE-HEADER -- Internal.