From 1b7d7105bac89ae7c5b5dae579965cd20f81c345 Mon Sep 17 00:00:00 2001 From: Cyrus Harmon Date: Sun, 8 Apr 2007 15:16:26 +0000 Subject: [PATCH] 1.0.4.49: revert debugger hackery * 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 | 28 +++++++++------------------- version.lisp-expr | 2 +- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/src/code/debug-int.lisp b/src/code/debug-int.lisp index fbec1a2..14cb3e9 100644 --- a/src/code/debug-int.lisp +++ b/src/code/debug-int.lisp @@ -654,29 +654,12 @@ (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. @@ -878,6 +861,13 @@ (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)) diff --git a/version.lisp-expr b/version.lisp-expr index 51cb8c7..43d637d 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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" -- 1.7.10.4