[Python-Dev] stack check on Unix: any suggestions?
Charles G Waldman
cgw@fnal.gov
Tue, 29 Aug 2000 16:05:21 -0500 (CDT)
Jeremy Hylton writes:
> Does anyone have suggestions for how to detect unbounded recursion in
> the Python core on Unix platforms?
Hey, check this out! - it's not portable in general, but it works for Linux,
which certainly covers a large number of the systems out there in the world.
#!/usr/bin/env python
def getstack():
for l in open("/proc/self/status").readlines():
if l.startswith('VmStk'):
t = l.split()
return 1024 * int(t[1])
def f():
print getstack()
f()
f()
I'm working up a version of this in C; you can do a "getrlimit" to
find the maximum stack size, then read /proc/self/status to get
current stack usage, and compare these values.
As far as people using systems that have a broken getrusage and also
no /proc niftiness, well... get yourself a real operating system ;-)