recursion limit exceeded in Python API, but there's only one function in traceback

Ömer Sinan Ağacan
2014-10-16T10:46:38Z

Hi all,

I'm putting some breakpoints and then running some actions when
program reaches that points, using Python API.

After a few breaks, GDB is starting to print these lines:

Traceback (most recent call last):
File "/home/omer/gdb_script/script.py", line 71, in handle_breakpoint
self.breakpoint_jump_addrs[bp.location].add(addr)
RuntimeError: maximum recursion depth exceeded

Weird thing about this is that it says "maximum recursion depth
exceeded" but there's only one function in the traceback. This doesn't
make sense. I think something else is going wrong.

One detail about this script is that it's doing lots of bookkeeping,
like collecting some information when GDB stops at a breakpoint. These
information are held in-memory, as Python data structures. I'm
wondering if this may be the cause of this error. i.e. maybe memory
allocated by GDB for Python interpreter is full or something like
that.

Any ideas about this?

Thanks.