recursion limit exceeded in Python API, but there's only one function in traceback
Ömer Sinan Ağacan
omeragacan@gmail.com
Thu Oct 16 15:15:00 GMT 2014
2014-10-16 18:03 GMT+03:00 <Paul_Koning@dell.com>:
> Is that the handler for a breakpoint? Does the completion of the “si” command invoke the breakpoint handler? If yes, that’s your answer.
>
> paul
Interesting, but I don't think that's causing the problem. I changed
the script to:
import gdb
import traceback
def handler(ev):
try:
print "handling a stop"
gdb.execute("stepi")
gdb.execute("continue")
except:
traceback.print_stack()
gdb.events.stop.connect(handler)
When I first attach to the process, I'm getting:
[..snip..]
handling a stop
0x080eecea in UpdateInput() ()
handling a stop
0x080eecef in UpdateInput() ()
handling a stop
0x080eece0 in UpdateInput() ()
handling a stop
0x080eece7 in UpdateInput() ()
Traceback (most recent call last):
File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
traceback.print_stack()
File "/usr/lib64/python2.7/traceback.py", line 269, in print_stack
print_list(extract_stack(f, limit), file)
File "/usr/lib64/python2.7/traceback.py", line 304, in extract_stack
linecache.checkcache(filename)
RuntimeError: maximum recursion depth exceeded
Again a weird "recursion error" with just 3 stack frames.
When I ignore and continue with `c`, it's failing with this:
[.. snip ..]
File "/home/omer/gdb_script/stackoverflow.py", line 7, in handler
gdb.execute("stepi")
File "/home/omer/gdb_script/stackoverflow.py", line 7, in handler
gdb.execute("stepi")
File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
traceback.print_stack()
File "/home/omer/gdb_script/stackoverflow.py", line 7, in handler
gdb.execute("stepi")
[.. snip ..]
There are thousands of same lines like this.
More information about the Gdb
mailing list