Luke Gorrie luke@bluetail.com writes:
Peter Seibel peter@javamonkey.com writes:
Luke Gorrie luke@bluetail.com writes:
Peter Seibel peter@javamonkey.com writes:
CL-USER> (compile-file "test-debug.lisp") Error: Received signal number 11 (Segmentation violation) [condition type: SYNCHRONOUS-OPERATING-SYSTEM-SIGNAL]
Restart actions (select using :continue): 0: Prompt for a different filename to compile 1: Abort handling SLIME request. 2: Abort entirely from this process. [Current process: repl-thread] [1] CL-USER(1):
Typing Allegro commands (e.g. :cont 1) doesn't seem to do anything. C-c C-c gets me into sldb where I can use one of the ABORT restarts to get back to the main REPL. But this seems wrong.
I find it troubling that so many simple errors like this cause SIGSEGV in ACL, but that's another story.
Can you try again from CVS? From the ChangeLog I think that Brian Downing has probably fixed this.
Nope. His fix fixed my other problem (with the interactive restart) but not this one.
Er, I hadn't realised that the segfaults were our fault :-)
Heh.
The segfault is triggered in SLDB when we call `debug:output-frame' to format a particular stack frame for the backtrace. I don't know what's special about this frame, but poking around in the TTY debugger I noticed that `debug:frame-visible-p' returns NIL for it. So, as a pretty lame workaround, I changed the backtrace to filter out all frames that aren't visible-p.
Don't know if this really solved the problem, so please give a shout if there are any more of these segfaults.
Well it seems to have worked--now I end up in SLDB with an error about the file not existing which is what I'd expect. Cool.
-Peter