This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]