When installing multiple backtrace filters (gdb/python/lib/gdb/backtrace.py:push_frame_filter), filtering will lead to infinite recursion because 'frame_filter' is global and not part of the closure.
Could you try this and verify that it works? @@ -32,7 +32,7 @@ an iterator returning such objects.""" if frame_filter == None: frame_filter = constructor else: - frame_filter = lambda iterator: constructor (frame_filter (iterator)) + frame_filter = lambda iterator, filter = frame_filter: constructor (filter (iterator)) def create_frame_filter (iter): global frame_filter Note also that we are going to rewrite this code. It has some design flaws as-is. We'll be sure to send a note to the Archer list when this gets underway.
I checked this in on archer-tromey-python.