From 203588ae04dc3d3a7f45a0e0ef461d4430c2f26f Mon Sep 17 00:00:00 2001 From: Alastair Bridgewater Date: Fri, 30 Apr 2010 16:46:48 +0000 Subject: [PATCH] 1.0.38.1: Fix undefined-function bug-353 tests on x86oids. * In undefined_tramp, move return address from passing location to storage location before trapping. --- NEWS | 4 ++++ src/runtime/x86-64-assem.S | 1 + src/runtime/x86-assem.S | 1 + version.lisp-expr | 2 +- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index a9871d1..7a8f727 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,8 @@ ;;;; -*- coding: utf-8; fill-column: 78 -*- +changes relative to sbcl-1.9.38: + * bug fix: Backtrace from undefined function on x86 and x86-64 now show + the calling frame. + changes in sbcl-1.0.38 relative to sbcl-1.0.37: * incompatible change: Thread names are now restricted to SIMPLE-STRINGs like for any other thread-related datastructure, MUTEX, etc. (lp#547095) diff --git a/src/runtime/x86-64-assem.S b/src/runtime/x86-64-assem.S index 388c3bf..c29aceb 100644 --- a/src/runtime/x86-64-assem.S +++ b/src/runtime/x86-64-assem.S @@ -266,6 +266,7 @@ GNAME(fpu_restore): .globl GNAME(undefined_tramp) TYPE(GNAME(undefined_tramp)) GNAME(undefined_tramp): + pop 8(%rbp) # Save return PC for backtrace. TRAP .byte trap_Error .byte 2 diff --git a/src/runtime/x86-assem.S b/src/runtime/x86-assem.S index 8e0db32..5a89a4a 100644 --- a/src/runtime/x86-assem.S +++ b/src/runtime/x86-assem.S @@ -338,6 +338,7 @@ GNAME(fpu_restore): TYPE(GNAME(undefined_tramp)) .byte 0, 0, 0, SIMPLE_FUN_HEADER_WIDETAG GNAME(undefined_tramp): + pop 4(%ebp) # Save return PC for backtrace. TRAP .byte trap_Error .byte 2 diff --git a/version.lisp-expr b/version.lisp-expr index 23787a7..87cccd9 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.38" +"1.0.38.1" -- 1.7.10.4