;; Make sure the backtrace isn't stunted in
;; any way. (Depends on running in the main
- ;; thread.)
- (let ((end (last backtrace 2)))
+ ;; thread.) FIXME: On Windows we get two
+ ;; extra foreign frames below regular frames.
+ (let ((end (last backtrace #-win32 2 #+win32 4)))
(unless (equal (caar end)
- (if *show-entry-point-details*
- '(sb-c::tl-xep sb-impl::toplevel-init)
- 'sb-impl::toplevel-init))
+ 'sb-impl::toplevel-init)
(print (list :backtrace-stunted (caar end)))
(setf result nil)))
(return-from outer-handler)))))
(funcall fun)))
(with-test (:name (:undefined-function :bug-346)
- :fails-on '(or :alpha)) ; bug 346
+ :fails-on '(or :alpha (and :x86-64 :freebsd))) ; bug 346
(assert (verify-backtrace
(lambda () (test #'optimized))
(list *undefined-function-frame*
(list '(flet not-optimized))
(list '(flet test) #'not-optimized))))))
-;;; Division by zero was a common error on PPC. It depended on the
+;;; Division by zero was a common error on PPC. It depended on the
;;; return function either being before INTEGER-/-INTEGER in memory,
-;;; or more than MOST-POSITIVE-FIXNUM bytes ahead. It also depends on
-;;; INTEGER-/-INTEGER calling SIGNED-TRUNCATE. I believe Raymond Toy
+;;; or more than MOST-POSITIVE-FIXNUM bytes ahead. It also depends on
+;;; INTEGER-/-INTEGER calling SIGNED-TRUNCATE. I believe Raymond Toy
;;; says that the Sparc backend (at least for CMUCL) inlines this, so
;;; if SBCL does the same this test is probably not good for the
;;; Sparc.
(with-test (:name (:throw :no-such-tag)
:fails-on '(or
- (and :x86 (or :linux :freebsd sunos))
+ (and :x86 (or :sunos))
:alpha
:mips))
(progn
;;; FIXME: This test really should be broken into smaller pieces
(with-test (:name (:backtrace :misc)
- :fails-on '(and :x86 (or :linux :sunos)))
+ :fails-on '(and :x86 (or :sunos)))
(macrolet ((with-details (bool &body body)
`(let ((sb-debug:*show-entry-point-details* ,bool))
,@body)))
;;; This is not a WITH-TEST :FAILS-ON PPC DARWIN since there are
;;; suspicions that the breakpoint trace might corrupt the whole image
;;; on that platform.
-#-(and (or ppc x86) darwin)
+#-(and (or ppc x86 x86-64) darwin)
(with-test (:name (trace :encapsulate nil)
:fails-on '(or :ppc :sparc :mips))
(let ((out (with-output-to-string (*trace-output*)
(assert (search "TRACE-THIS" out))
(assert (search "returned OK" out))))
-#-(and (or ppc x86) darwin)
+#-(and (or ppc x86 x86-64) darwin)
(with-test (:name (trace-recursive :encapsulate nil)
:fails-on '(or :ppc :sparc :mips))
(let ((out (with-output-to-string (*trace-output*)
(loop while (sb-thread:thread-alive-p thread)))
(disable-debugger)
+
+(write-line "/debug.impure.lisp done")