On Thu, Aug 17, 2000 at 09:17:42AM +0800, Mark Favas wrote: > [Trent] > > This test on Win32 and Linux32 hits the recursion limit check of 10000 in > > SRE_MATCH(). However, on Linux64 the segfault occurs at a recursion depth of > > 7500. I don't want to just willy-nilly drop the recursion limit down to make > > the problem go away. > > > > Sorry for the delay - yes, I had these segfaults due to exceeding the > stack size on Tru64 Unix (which, by default, is 2048 kbytes) before > Fredrick introduced the recusrion limit of 10000 in _sre.c. You'd expect > a 64-bit OS to use a bit more bytes of the stack when handling recursive > calls, but your 7500 down from 10000 sounds a bit much - unless the Actually with pointers being twice the size the stack will presumably get comsumed more quickly (right?), so all other things being equal the earlier stack overflow is expected. > stack size limit you're using on Linux64 is smaller than that for > Linux32 - what are they? ------------------- snip --------- snip ---------------------- #include <sys/time.h> #include <sys/resource.h> #include <unistd.h> int main(void) { struct rlimit lims; if (getrlimit(RLIMIT_STACK, &lims) != 0) { printf("error in getrlimit\n"); exit(1); } printf("cur stack limit = %d, max stack limit = %d\n", lims.rlim_cur, lims.rlim_max); return 0; } ------------------- snip --------- snip ---------------------- On Linux32: cur stack limit = 8388608, max stack limit = 2147483647 On Linux64: cur stack limit = 8388608, max stack limit = -1 Trent -- Trent Mick TrentM@ActiveState.com
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4