[Openmcl-cvs-notifications] r15055 - in /trunk/source/lisp-kernel: area.h x86-exceptions.c
gb at clozure.com
gb at clozure.com
Wed Nov 2 03:17:24 CDT 2011
Author: gb
Date: Wed Nov 2 03:17:23 2011
New Revision: 15055
Log:
area.h: TSTACK_SOFTPROT and TSTACK_HARDPROT have to be a bit bigger
than the assembler constant tstack_alloc_limit, which is #xffff on
platforms (x86,ppc) where we use a temp stack.
x86-exceptions.c: do_hard_stack_overflow() enters the kernel debugger
with a message saying that an unrecoverable stack overflow has occurred.
We used to try to reset the current thread, but that code hasn't worked
in a long time (and may not really be a good idea.) It should be possible
to at least get a kernel backtrace or crash dump if things aren't too bad .=
..
Modified:
trunk/source/lisp-kernel/area.h
trunk/source/lisp-kernel/x86-exceptions.c
Modified: trunk/source/lisp-kernel/area.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/area.h (original)
+++ trunk/source/lisp-kernel/area.h Wed Nov 2 03:17:23 2011
@@ -134,8 +134,8 @@
#endif
=
#define MIN_TSTACK_SIZE (1<<18)
-#define TSTACK_HARDPROT 0
-#define TSTACK_SOFTPROT (1<<16)
+#define TSTACK_HARDPROT ((1<<16)+(1<<12))
+#define TSTACK_SOFTPROT ((1<<16)+(1<<12))
=
#ifdef PPC
#define CS_OVERFLOW_FORCE_LIMIT ((natural)(-(sizeof(lisp_frame))))
Modified: trunk/source/lisp-kernel/x86-exceptions.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/x86-exceptions.c (original)
+++ trunk/source/lisp-kernel/x86-exceptions.c Wed Nov 2 03:17:23 2011
@@ -756,7 +756,8 @@
Boolean
do_hard_stack_overflow(ExceptionInformation *xp, protected_area_ptr area, =
BytePtr addr)
{
- reset_lisp_process(xp);
+ /* reset_lisp_process(xp); */
+ Bug(xp, "Unrecoverable stack overflow.");
return false;
}
=
More information about the Openmcl-cvs-notifications
mailing list