Here is the updated revision of the patch, synced with upstream and with new API (the input to a sniffer is still named SnifferInfo, and the output is named UnwindInfo). gdb/ChangeLog: 2015-02-30 Sasha Smundak * Makefile.in (SUBDIR_PYTHON_OBJS): Add py-unwind.o. (SUBDIR_PYTHON_SRCS): Add py-unwind.c. (py-unwind.o): New recipe. * NEWS: mention Python frame unwinding. * data-directory/Makefile.in (PYTHON_FILE_LIST): Add sniffers.py. * doc/python.texi (Writing a Frame Unwinder in Python): Add section. * python/lib/gdb/__init__.py (packages): Add frame_sniffers list. * python/lib/gdb/command/sniffers.py: New file, implements GDB commands to list/enable/disable Python sniffers. * python/lib/gdb/function/sniffers.py: New file, implements execute_sniffers function. * python/lib/gdb/sniffer.py: New file, contains Sniffer class and register_sniffer function. * python/py-objfile.c (objfile_object): Add frame_sniffers field. (objfpy_dealloc): Decrement frame_sniffers reference count. (objfpy_initialize): Create frame_sniffers list. (objfpy_get_frame_sniffers): Implement Objfile.frame_sniffers getter. (objfpy_set_frame_sniffers): Implement Objfile.frame_sniffers setter. (objfile_getset): Add frame_sniffers attribute to Objfile. * python/py-progspace.c (pspace_object): Add frame_sniffers field. (pspy_dealloc): Decrement frame_sniffers reference count. (pspy_initialize): Create frame_sniffers list. (pspy_get_frame_sniffers): Implement gdb.Progspace.frame_sniffers getter. (pspy_set_frame_sniffers): Implement gdb.Progspace.frame_sniffers setter. (pspy_getset): Add frame_sniffers attribute to gdb.Progspace. * python/py-unwind.c: New file, implements Python frame sniffers interface. * python/python-internal.h (pspy_get_name_sniffers): New prototype. (objpy_get_frame_sniffers): New prototype. (gdbpy_initialize_unwind): New prototype. * python/python.c (gdbpy_apply_type_printers): Call gdbpy_initialize_unwind. gdb/testsuite/ChangeLog: 2014-02-30 Sasha Smundak * gdb.python/py-unwind-maint.c: Test program for py-unwind-maint. * gdb.python/py-unwind-maint.exp: Tests sniffer-related GDB commands. * gdb.python/py-unwind-maint.py: Pythons sniffers for the test. * gdb.python/py-unwind.c: Test program for the py-unwind test. * gdb.python/py-unwind.exp: Python frame sniffers test. * gdb.python/py-unwind.py: Frame sniffer in Python tested by py-unwind test.