FS#25252 - [sbcl] backtraces

Attached to Project: Arch Linux
Opened by daimrod (daimrod) - Monday, 25 July 2011, 08:46 GMT
Last edited by Andrea Scarpino (BaSh) - Thursday, 01 September 2011, 23:55 GMT
Task Type Bug Report
Category Upstream Bugs
Status Closed
Assigned To Jürgen Hötzel (juergen)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
SBCL's backtraces aren't correctly formed.

SBCL prints something about an `SB-ALIEN-INTERNALS:ALIEN-VALUE' instead of the name of the function and its arguments.
SLIME prints a `foreign call 0x…'.

Additional info:
* package version(s)
Tested with both extra and aur package (1.0.49 and 1.0.50)

* config and/or log files etc.
no config

Steps to reproduce:
(extra/sbcl http://pastebin.com/D53tsw7R)
(fresh sbcl from git sources http://pastebin.com/KKVMFNZT)

Start sbcl:
/usr/bin/sbcl --nouserinit --nosysinit

Define a new function:
(DEFUN TEST (a b) (LIST a b))

Call this function with more or less arguments:
(TEST 1 2 3)

* What's wrong ?

I've tried with both the extra and the aur package and I've been able to find the problem in the aur package. It is the directive `make -e' which ask to make to override the flags defined in the Makefile by those defined by the environment. Once
we remove this line, SBCL works well with backtraces. (the aur package has been corrected)
This task depends upon

Closed by  Andrea Scarpino (BaSh)
Thursday, 01 September 2011, 23:55 GMT
Reason for closing:  Fixed
Additional comments about closing:  sbcl 1.0.51-1
Comment by daimrod (daimrod) - Monday, 25 July 2011, 15:49 GMT
After some tests I've made a PKGBUILD that ABS which works for me.

I've removed the `make -e' command and now I use the --prefix argument to define the correct SBCL_HOME.
SBCL_HOME needs to be unset if we want to use INSTALL_ROOT with install.sh.

EDIT:

I've tried it on i686 but it doesn't work, however even with a fresh compilation from the sources I can't get working backtraces.
Comment by daimrod (daimrod) - Friday, 29 July 2011, 15:20 GMT
Thanks to the guys on #sbcl I've found the problem. It's because on gcc >= 4.6 -fnomit-frame-pointer is enabled by default on x86-32.
-fnomit-frame-pointer makes debugging impossible on some machines so we have to overwrite this by adding -fno-omit-frame-pointer to CFLAGS

Here is a PKGBUILD that works on both x86-32 and x86-64.
   PKGBUILD (2.2 KiB)
Comment by Andrea Scarpino (BaSh) - Monday, 01 August 2011, 23:05 GMT
  • Field changed: Category (Packages → Upstream Bugs)
  • Field changed: Architecture (All → All)

Loading...