This is the mail archive of the gdb-patches@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: [RFC] [PATCH] Provide the ability to write the frame unwinder in Python


>  > diff --git a/gdb/python/py-unwind.c b/gdb/python/py-unwind.c
...
> Also, we need another class: gdb.FrameID.
> I'm not sure whether to implement it in C or Python.
The code now accepts any object having 'sp' and possibly 'pc' and
'special' attributes. IMHO there is no need to have a base class for this.

> There's some ambiguity on whether the Python error indicator will
> or will not be set on return.  Currently, sometimes it will and sometimes
> it won't.  I think the code is such that it won't matter today, but
> it would be good to either clear the error or at least document
> that the Python error indicator may or may not be set on return
> if the result is zero.
I have documented which internal functions are set Python error.

New revision:

gdb/ChangeLog

2015-03-28  Sasha Smundak  <asmundak@google.com>

    * 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
    gdb/unwinder.py and gdb/command/unwinder.py
    * doc/python.texi (Writing a Frame Unwinder in Python): Add
    section.
    * python/lib/gdb/__init__.py (packages): Add frame_unwinders
    list.
    (execute_unwinders): New function.
    * python/lib/gdb/command/unwinders.py: New file.
    * python/lib/gdb/unwinder.py: New file.
    * 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): New function.
    (objfpy_set_frame_unwinders): Ditto.
    (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): New function.
    (pspy_set_frame_unwinders): Ditto.
    (pspy_getset): Add frame_unwinders attribute to gdb.Progspace.
    * python/py-unwind.c: New file.
    * 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.

gdb/testsuite/ChangeLog

2015-03-28  Sasha Smundak  <asmundak@google.com>

    * gdb.python/py-unwind-maint.c: New file.
    * gdb.python/py-unwind-maint.exp: New test.
    * gdb.python/py-unwind-maint.py: New file.
    * gdb.python/py-unwind.c: New file.
    * gdb.python/py-unwind.exp: New test.
    * gdb.python/py-unwind.py: New test.

Attachment: patch9.diff
Description: Text document


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