1.0.4.49: revert debugger hackery
authorCyrus Harmon <ch-sbcl@bobobeach.com>
Sun, 8 Apr 2007 15:16:26 +0000 (15:16 +0000)
committerCyrus Harmon <ch-sbcl@bobobeach.com>
Sun, 8 Apr 2007 15:16:26 +0000 (15:16 +0000)
 * back out my x86-64/macos inspired top-frame workaround. This has
   the unfortunate side-effect of re-breaking the debugger on
   x86-64/macos, but that needs a proper fix.

src/code/debug-int.lisp
version.lisp-expr

index fbec1a2..14cb3e9 100644 (file)
 (defun descriptor-sap (x)
   (int-sap (get-lisp-obj-address x)))
 
-(defun nth-interrupt-context (n)
-  (declare (type (unsigned-byte 32) n)
-           (optimize (speed 3) (safety 0)))
-  (sb!alien:sap-alien (sb!vm::current-thread-offset-sap
-                       (+ sb!vm::thread-interrupt-contexts-offset n))
-                      (* os-context-t)))
-
 ;;; Return the top frame of the control stack as it was before calling
 ;;; this function.
 (defun top-frame ()
   (/noshow0 "entering TOP-FRAME")
-  ;; check to see if we can get the context by calling
-  ;; nth-interrupt-context, otherwise use the (%caller-frame-and-pc
-  ;; vop).
-  (let ((context (nth-interrupt-context 0)))
-    (if (and context
-             (not (sb!alien:null-alien context)))
-        (compute-calling-frame
-         (int-sap (sb!vm:context-register context
-                                          sb!vm::cfp-offset))
-         (context-pc context) nil)
-        (multiple-value-bind (fp pc) (%caller-frame-and-pc)
-          (compute-calling-frame (descriptor-sap fp) pc nil)))))
+  (multiple-value-bind (fp pc) (%caller-frame-and-pc)
+    (compute-calling-frame (descriptor-sap fp) pc nil)))
 
 ;;; Flush all of the frames above FRAME, and renumber all the frames
 ;;; below FRAME.
                              (if up-frame (1+ (frame-number up-frame)) 0)
                              escaped)))))
 
+(defun nth-interrupt-context (n)
+  (declare (type (unsigned-byte 32) n)
+           (optimize (speed 3) (safety 0)))
+  (sb!alien:sap-alien (sb!vm::current-thread-offset-sap
+                       (+ sb!vm::thread-interrupt-contexts-offset n))
+                      (* os-context-t)))
+
 #!+(or x86 x86-64)
 (defun find-escaped-frame (frame-pointer)
   (declare (type system-area-pointer frame-pointer))
index 51cb8c7..43d637d 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.4.48"
+"1.0.4.49"