0.6.8.3: added CODE-COMPONENT slot for NO-DEBUG-INFO condition
authorWilliam Harold Newman <william.newman@airmail.net>
Tue, 31 Oct 2000 19:40:14 +0000 (19:40 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Tue, 31 Oct 2000 19:40:14 +0000 (19:40 +0000)
BUGS
NEWS
doc/cmucl/cmu-user/cmu-user.tex
package-data-list.lisp-expr
src/code/debug-int.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index 71f2d77..411b75c 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -751,3 +751,10 @@ Error in function C::GET-LAMBDA-TO-COMPILE:
 
 60:
   The debugger LIST-LOCATIONS command doesn't work properly.
 
 60:
   The debugger LIST-LOCATIONS command doesn't work properly.
+
+61:
+  Compiling and loading
+    (DEFUN FAIL (X) (THROW 'FAIL-TAG X))
+    (FAIL 12)
+  then requesting a BACKTRACE at the debugger prompt gives no information
+  about where in the user program the problem occurred.
diff --git a/NEWS b/NEWS
index 294c656..46d47c2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -529,11 +529,6 @@ changes in sbcl-0.6.9 relative to sbcl-0.6.8:
 * The debugger now handles errors which arise when trying to print
   *DEBUG-CONDITION*, so that it's less likely to fall into infinite
   regress.
 * The debugger now handles errors which arise when trying to print
   *DEBUG-CONDITION*, so that it's less likely to fall into infinite
   regress.
-?? The debugger is now better at walking down through the control stack
-  frames generated by signal handlers. In particular, compiling and loading
-    (DEFUN FAIL (X) (THROW 'FAIL-TAG X))
-    (FAIL 12)
-  then requesting a BACKTRACE at the debugger prompt now gives useful output.
 ?? signal handling reliability
 ?? fixed some bugs mentioned in the man page:
   ?? DEFUN-vs.-DECLAIM
 ?? signal handling reliability
 ?? fixed some bugs mentioned in the man page:
   ?? DEFUN-vs.-DECLAIM
index fb51948..8623c0d 100644 (file)
@@ -12610,7 +12610,7 @@ from this condition.
 \end{deftp}
 
 
 \end{deftp}
 
 
-\begin{deftp}{Condition}{unhandled-condition}{}
+\begin{deftp}{Condition}{unhandled-debug-condition}{}
 This error results from a signalled \code{debug-condition} occurring
 without anyone handling it.
 \end{deftp}
 This error results from a signalled \code{debug-condition} occurring
 without anyone handling it.
 \end{deftp}
index bd380bb..eda9d8d 100644 (file)
@@ -397,7 +397,7 @@ like *STACK-TOP-HINT*"
              "LAMBDA-LIST-UNAVAILABLE" "MAKE-BREAKPOINT" "NO-DEBUG-BLOCKS"
              "NO-DEBUG-FUNCTION-RETURNS" "NO-DEBUG-INFO" "PREPROCESS-FOR-EVAL"
              "RETURN-FROM-FRAME" "SOURCE-PATH-CONTEXT"
              "LAMBDA-LIST-UNAVAILABLE" "MAKE-BREAKPOINT" "NO-DEBUG-BLOCKS"
              "NO-DEBUG-FUNCTION-RETURNS" "NO-DEBUG-INFO" "PREPROCESS-FOR-EVAL"
              "RETURN-FROM-FRAME" "SOURCE-PATH-CONTEXT"
-             "TOP-FRAME" "UNHANDLED-CONDITION" "UNKNOWN-CODE-LOCATION"
+             "TOP-FRAME" "UNHANDLED-DEBUG-CONDITION" "UNKNOWN-CODE-LOCATION"
              "UNKNOWN-CODE-LOCATION-P" "UNKNOWN-DEBUG-VAR"
              "CODE-LOCATION-KIND" "FLUSH-FRAMES-ABOVE"))
 
              "UNKNOWN-CODE-LOCATION-P" "UNKNOWN-DEBUG-VAR"
              "CODE-LOCATION-KIND" "FLUSH-FRAMES-ABOVE"))
 
index f4b2044..281128e 100644 (file)
     that must be handled, but they are not programmer errors."))
 
 (define-condition no-debug-info (debug-condition)
     that must be handled, but they are not programmer errors."))
 
 (define-condition no-debug-info (debug-condition)
-  ()
+  ((code-component :reader no-debug-info-code-component
+                  :initarg :code-component))
   #!+sb-doc
   (:documentation "There is no usable debugging information available.")
   (:report (lambda (condition stream)
             (declare (ignore condition))
             (fresh-line stream)
   #!+sb-doc
   (:documentation "There is no usable debugging information available.")
   (:report (lambda (condition stream)
             (declare (ignore condition))
             (fresh-line stream)
-            (write-line "no debugging information available" stream))))
+            (format stream
+                    "no debug information available for ~S~%"
+                    (no-debug-info-code-component condition)))))
 
 (define-condition no-debug-function-returns (debug-condition)
   ((debug-function :reader no-debug-function-returns-debug-function
 
 (define-condition no-debug-function-returns (debug-condition)
   ((debug-function :reader no-debug-function-returns-debug-function
    "All programmer errors from using the interface for building debugging
     tools inherit from this type."))
 
    "All programmer errors from using the interface for building debugging
     tools inherit from this type."))
 
-(define-condition unhandled-condition (debug-error)
-  ((condition :reader unhandled-condition-condition :initarg :condition))
+(define-condition unhandled-debug-condition (debug-error)
+  ((condition :reader unhandled-debug-condition-condition :initarg :condition))
   (:report (lambda (condition stream)
             (format stream "~&unhandled DEBUG-CONDITION:~%~A"
   (:report (lambda (condition stream)
             (format stream "~&unhandled DEBUG-CONDITION:~%~A"
-                    (unhandled-condition-condition condition)))))
+                    (unhandled-debug-condition-condition condition)))))
 
 (define-condition unknown-code-location (debug-error)
   ((code-location :reader unknown-code-location-code-location
 
 (define-condition unknown-code-location (debug-error)
   ((code-location :reader unknown-code-location-code-location
    (frame :reader frame-function-mismatch-frame :initarg :frame)
    (form :reader frame-function-mismatch-form :initarg :form))
   (:report (lambda (condition stream)
    (frame :reader frame-function-mismatch-frame :initarg :frame)
    (form :reader frame-function-mismatch-form :initarg :form))
   (:report (lambda (condition stream)
-            (format stream
-                    "~&Form was preprocessed for ~S,~% but called on ~S:~%  ~S"
-                    (frame-function-mismatch-code-location condition)
-                    (frame-function-mismatch-frame condition)
-                    (frame-function-mismatch-form condition)))))
-
-;;; This signals debug-conditions. If they go unhandled, then signal an
-;;; unhandled-condition error.
+            (format
+             stream
+             "~&Form was preprocessed for ~S,~% but called on ~S:~%  ~S"
+             (frame-function-mismatch-code-location condition)
+             (frame-function-mismatch-frame condition)
+             (frame-function-mismatch-form condition)))))
+
+;;; This signals debug-conditions. If they go unhandled, then signal
+;;; an UNHANDLED-DEBUG-CONDITION error.
 ;;;
 ;;; ??? Get SIGNAL in the right package!
 (defmacro debug-signal (datum &rest arguments)
   `(let ((condition (make-condition ,datum ,@arguments)))
      (signal condition)
 ;;;
 ;;; ??? Get SIGNAL in the right package!
 (defmacro debug-signal (datum &rest arguments)
   `(let ((condition (make-condition ,datum ,@arguments)))
      (signal condition)
-     (error 'unhandled-condition :condition condition)))
+     (error 'unhandled-debug-condition :condition condition)))
 \f
 ;;;; structures
 ;;;;
 \f
 ;;;; structures
 ;;;;
   (let ((info (%code-debug-info component)))
     (cond
      ((not info)
   (let ((info (%code-debug-info component)))
     (cond
      ((not info)
-      (debug-signal 'no-debug-info))
+      (debug-signal 'no-debug-info :code-component component))
      ((eq info :bogus-lra)
       (make-bogus-debug-function "function end breakpoint"))
      (t
      ((eq info :bogus-lra)
       (make-bogus-debug-function "function end breakpoint"))
      (t
index 46c6fb7..8409496 100644 (file)
@@ -15,4 +15,4 @@
 ;;; versions, and a string a la "0.6.5.12" is used for versions which
 ;;; aren't released but correspond only to CVS tags or snapshots.
 
 ;;; versions, and a string a la "0.6.5.12" is used for versions which
 ;;; aren't released but correspond only to CVS tags or snapshots.
 
-"0.6.8.2"
+"0.6.8.3"