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

Ömer Sinan Ağacan omeragacan@gmail.com
Thu Oct 16 14:56:00 GMT 2014


Thanks for tips. I managed to blow the stack using a minimal script.
Here's the code:

  import gdb
  import traceback

  def handler(ev):
      try:
          print "handling a stop"
          gdb.execute("si")
          gdb.execute("c")
      except:
          traceback.print_stack()

  gdb.events.stop.connect(handler)

Output:

  [...snip...]
  File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
    gdb.execute("si")
  File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
    gdb.execute("si")
  File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
    gdb.execute("si")
  File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
    gdb.execute("si")
  File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
    gdb.execute("si")
  File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
    gdb.execute("si")
  File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
    gdb.execute("si")
  File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
    gdb.execute("si")
  File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
    gdb.execute("si")
  File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
    gdb.execute("si")
  File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
    gdb.execute("si")
  File "/home/omer/gdb_script/stackoverflow.py", line 10, in handler
    gdb.execute("si")
  [...snip...]

I don't understand why I'm having nested `gdb.execute("si")` calls
here. Does `gdb.execute("si")` calls itself? Otherwise how can I have
this stack?

Any ideas?



More information about the Gdb mailing list