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

Paul_Koning
2014-10-16T14:28:46Z

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 1266 bytes --]

On Oct 16, 2014, at 8:45 AM, Phil Muldoon <pmuldoon@redhat.com> wrote:

> On 16/10/14 11:45, Ã–mer Sinan AÄŸacan wrote:
>> 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
>
> That's an error from Python. It tells me something in script.py is
> not quite right. Impossible to tell without seeing script.py in
> general. You can increase the recursion depth by doing something like
>
> import sys
> sys.setrecursionlimit(9000)
>
> Where '9000' is a limit you can set and vary. However, this might
> indeed be papering over the cracks, and not fixing the fault.

I would expect that you could wrap the script in a try/except block, to catch the stack overflow and print a Python stack trace when that happens.

Should GDB print a Python backtrace when the Python script fails, just as executing a Python script standalone would do?

paul

\x16º&ÖëzÛ«ŸûóÉb²Ö«r\x18\x1d