From: William H. N. <wil...@ai...> - 2002-02-27 01:56:45
|
On Tue, Feb 26, 2002 at 12:00:09PM -0500, Raymond Toy wrote: > >>>>> "Sam" == Sam Steingold <sd...@gn...> writes: > > >> * In message <87e...@ya...> > >> * On the subject of "[clisp-list] stack overflow -> into debugger?" > >> * Sent on 25 Feb 2002 12:24:27 -0500 > >> * Honorable Russell McManus <rus...@ya...> writes: > >> > >> Is there some way to get clisp to drop me into the debugger when I get > >> a stack overflow condition? > > Sam> not really - debugger requires some stack too, and detecting an > Sam> "impending" stack overflow is much more expensive than detecting an > Sam> actual one. > > Just a thought. Have no idea if this would really work. > > Assume that the end of stack is unwriteable memory and that's how > stack overflow is detected. Make the actual stack somewhat smaller > than the allocated space, and make the extra space unwriteable. > > On stack overflow, make the extra space writeable so we actually have > more space. Continue. When you exit the debugger, the extra stack > space is made unwriteable again. If you blow the stack in the > debugger, you lose. I've been thinking of something like this in SBCL, except * not messing around with memory protection, but instead adding runtime checks on entry to functions compiled with high SAFETY, and * starting with some reasonably generous amount of "more space" for debugging, e.g. 1 Mbytes, then allocating half of it at each level of debugger recursion, so you have 500 extra kbytes the first time you screw up, then 250 kbytes the next time, and so forth. > Would this work? Dunno yet. SBCL version 0.7.1.23 (checked in 2002-02-21) compiles %DETECT-STACK-EXHAUSTION calls into functions, but it %DETECT-STACK-EXHAUSTION is just a no-op stub right now, and the associated error-recovery machinery doesn't exist either. I've been working on other things instead of finishing it. (I found the stack overflow bug in my application before I finished the stack-overflow handling in SBCL.:-) -- William Harold Newman <wil...@ai...> "Look on my works, ye Mighty, and despair!" -- Ozymandias, King of Kings PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C |