Re: recursion limit exceeded in Python API, but there's only one function in traceback
Phil Muldoon <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On 16/10/14 15:28, [email protected] wrote: > On Oct 16, 2014, at 8:45 AM, Phil Muldoon <[email protected]> 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? It prints an abbreviated backtrace by default. "set python print-stack full" will enable the full backtrace (we had a request to do this for pretty printers). Cheers Phil