> Nit: we are setting the register here. Fixed. >> + _("When non-zero, Pythin unwinder debugging is enabled."), > > "Python" Fixed. > Still no support for register names. Registers can be retrieved by name, please see gdb/testsuite/gdb.python/py-unwind.py as an example. >> +import gdb >> +from gdb.sniffer import Sniffer >> + >> +class TestSniffer(Sniffer): > > I still think it's much better to call these "unwinders". You say that > it's the terminology that GDB uses but that's not really the case -- > "sniffer" names part of the unwinder interface, which Python and Guile > implement the whole of. You chose "unwinder" as the documentation > heading and the file name; why introduce a new term to the user? Renamed all but SnifferInfo. 2015-03-28 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 unwinders.py. * doc/python.texi (Writing a Frame Unwinder in Python): Add section. * python/lib/gdb/__init__.py (packages): Add frame_unwinders list. * python/lib/gdb/command/unwinders.py: New file, implements GDB commands to list/enable/disable Python unwinders. * python/lib/gdb/function/unwinders.py: New file, implements execute_unwinders function. * python/lib/gdb/unwinder.py: New file, contains Unwinder class and register_unwinder function. * python/py-objfile.c (objfile_object): Add frame_unwinders field. (objfpy_dealloc): Decrement frame_unwinders reference count. (objfpy_initialize): Create frame_unwinders list. (objfpy_get_frame_unwinders): Implement Objfile.frame_unwinders getter. (objfpy_set_frame_unwinders): Implement Objfile.frame_unwinders setter. (objfile_getset): Add frame_unwinders attribute to Objfile. * python/py-progspace.c (pspace_object): Add frame_unwinders field. (pspy_dealloc): Decrement frame_unwinders reference count. (pspy_initialize): Create frame_unwinders list. (pspy_get_frame_unwinders): Implement gdb.Progspace.frame_unwinders getter. (pspy_set_frame_unwinders): Implement gdb.Progspace.frame_unwinders setter. (pspy_getset): Add frame_unwinders attribute to gdb.Progspace. * python/py-unwind.c: New file, implements Python frame unwinders interface. * python/python-internal.h (pspy_get_name_unwinders): New prototype. (objpy_get_frame_unwinders): New prototype. (gdbpy_initialize_unwind): New prototype. * python/python.c (gdbpy_apply_type_printers): Call gdbpy_initialize_unwind. 2015-03-28 Sasha Smundak * gdb.python/py-unwind-maint.c: Test program for py-unwind-maint. * gdb.python/py-unwind-maint.exp: Tests unwinder-related GDB commands. * gdb.python/py-unwind-maint.py: Pythons frame unwinders for the test. * gdb.python/py-unwind.c: Test program for the py-unwind test. * gdb.python/py-unwind.exp: Python frame unwinders test. * gdb.python/py-unwind.py: Python frame unwinder tested by py-unwind test.