Changeset 15055


Ignore:
Timestamp:
Nov 2, 2011, 8:17:23 AM (7 years ago)
Author:
gb
Message:

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 ...

Location:
trunk/source/lisp-kernel
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/area.h

    r14600 r15055  
    135135
    136136#define MIN_TSTACK_SIZE (1<<18)
    137 #define TSTACK_HARDPROT 0
    138 #define TSTACK_SOFTPROT (1<<16)
     137#define TSTACK_HARDPROT ((1<<16)+(1<<12))
     138#define TSTACK_SOFTPROT ((1<<16)+(1<<12))
    139139
    140140#ifdef PPC
  • trunk/source/lisp-kernel/x86-exceptions.c

    r15000 r15055  
    757757do_hard_stack_overflow(ExceptionInformation *xp, protected_area_ptr area, BytePtr addr)
    758758{
    759   reset_lisp_process(xp);
     759  /*  reset_lisp_process(xp); */
     760  Bug(xp, "Unrecoverable stack overflow.");
    760761  return false;
    761762}
Note: See TracChangeset for help on using the changeset viewer.