From cb2be3774a0821d7a37fcacbce3ebda9dbb21587 Mon Sep 17 00:00:00 2001 From: wlott <wlott> Date: Mon, 15 Feb 1993 20:32:10 +0000 Subject: [PATCH] Changed HANDLE-BREAKPOINT to allow breakpoints that nobody wants. This can happen if a function-end breakpoint was deactivated while the function was on the stack, because there is no way to convert the bogus-lra back into the real lra. --- code/debug-int.lisp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/code/debug-int.lisp b/code/debug-int.lisp index 76eb58772..e6f9b53d1 100644 --- a/code/debug-int.lisp +++ b/code/debug-int.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/debug-int.lisp,v 1.55 1993/01/15 02:25:33 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/debug-int.lisp,v 1.56 1993/02/15 20:32:10 wlott Exp $") ;;; ;;; ********************************************************************** ;;; @@ -3297,9 +3297,8 @@ (debug-function-name (debug-function-from-pc component offset)) offset)) (let ((breakpoints (breakpoint-data-breakpoints data))) - (unless breakpoints - (error "Breakpoint that nobody wants?")) - (if (eq (breakpoint-kind (car breakpoints)) :function-end) + (if (or (null breakpoints) + (eq (breakpoint-kind (car breakpoints)) :function-end)) (handle-function-end-breakpoint-aux breakpoints data signal-context) (handle-breakpoint-aux breakpoints data offset component signal-context))))) @@ -3317,6 +3316,8 @@ ;;; This handles code-location and debug-function :function-start breakpoints. ;;; (defun handle-breakpoint-aux (breakpoints data offset component signal-context) + (unless breakpoints + (error "Breakpoint that nobody wants?")) (unless (member data *executing-breakpoint-hooks*) (let ((*executing-breakpoint-hooks* (cons data *executing-breakpoint-hooks*))) @@ -3355,17 +3356,16 @@ ;;; HANDLE-FUNCTION-END-BREAKPOINT -- Internal Interface ;;; -(defun handle-function-end-breakpoint (offset component signal-context) +(defun handle-function-end-breakpoint (offset component sigcontext) (let ((data (breakpoint-data component offset nil))) (unless data (error "Unknown breakpoint in ~S at offset ~S." (debug-function-name (debug-function-from-pc component offset)) offset)) (let ((breakpoints (breakpoint-data-breakpoints data))) - (unless breakpoints - (error "Breakpoint that nobody wants?")) - (assert (eq (breakpoint-kind (car breakpoints)) :function-end)) - (handle-function-end-breakpoint-aux breakpoints data signal-context)))) + (when breakpoints + (assert (eq (breakpoint-kind (car breakpoints)) :function-end)) + (handle-function-end-breakpoint-aux breakpoints data sigcontext))))) ;;; HANDLE-FUNCTION-END-BREAKPOINT-AUX -- Internal. ;;; -- GitLab