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]

[Patch v9] Debug methods in GDB Python


Hi,

Attached is the v9 of the patch which adds debug methods feature to
the Python API. I have added doc changes in this version (barring a
NEWS entry). I request a full review this time.

Changes from v8:

1. Fixed copyright headers.
2. Added a debug methods interface to the extension language API and
implemented the debug methods support in Python using this interface.
3. Added doc changes for debug methods.

Pending items:

1. NEWS entry
2. A node for debug method commands in gdb.texinfo. I have question
here: Should I follow the "Pretty Printing" as an example and add a
section "Debug Methods" under "Examining Data"? Then, a node under
this section for debug method commands can be added.

2014-02-10  Siva Chandra Reddy  <sivachandra@google.com>

        * Makefile.in: Add entries for new files.
        * data-directory/Makefile.in: Add entries for new Python files.
        * eval.c (evaluate_subexp_standard): Lookup and invoke methods
        defined in extension languages.
        * extension-priv.h (struct extension_language_defn): Add a
        pointer to the debug method interface "v-table".
        (struct extension_language_debug_method_ops): New struct
        defining the debug method interface for extension languages.
        * extension.c (new_debug_method_worker): New function.
        (clone_debug_method_worker): Likewise.
        (get_matching_debug_method_workers): Likewise.
        (get_debug_method_argtypes): Likewise.
        (invoke_debug_method): Likewise
        (free_debug_method_worker_vec): Likewise.
        (make_debug_method_worker_vec_cleanup): Likewise.
        * extension.h: New function declarations.
        (struct debug_method_worker): New struct.
        (VEC (debug_method_worker_p)): New type.
        (debug_method_worker_p): New typedef.
        (debug_method_worker_vec): Likewise.
        * guile/guile.c (extension_language_guile): Set the vtable
        of the debug methods interface to NULL.
        * valarith.c (value_x_binop, value_x_unop): Lookup and invoke
        overloaded operator methods defined in extension languages.
        * valops.c (find_oload_method_list, find_method_list,
        find_overload_match, find_oload_champ): Lookup methods defined
        in extension languages.
        (value_has_indirect_dynamic_type): New function to determine
        the indirect dynamic type of a value.
        * value.h (find_overload_match): Update signature.
        * python/py-debugmethods.c: New file.
        * python/py-objfile.c (objfile_object): New field
        'debugmethod_matchers'.
        (objfpy_dealloc): XDECREF on the new debugmethod_matcherss field.
        (objfpy_new, objfile_to_objfile_object): Initialize
        debugmethod_macthers field.
        (objfpy_get_debugmethod_matchers): New function.
        (objfile_getset): New entry 'debugmethod_matchers'.
        * python/py-progspace.c (pspace_object): New field
        'debugmethod_matchers'.
        (pspy_dealloc): XDECREF on the new debugmethod_matchers field.
        (pspy_new, pspace_to_pspace_object): Initialize
        debugmethod_matchers field.
        (pspy_get_debugmethod_matchers): New function.
        (pspace_getset): New entry 'debug_methods'.
        * python/python-internal.h: Add declarations for new functions.
        * python/python.c (_initialize_python): Invoke
        gdbpy_initialize_debugmethods.
        * python/python.h: Add declarations of new functions.
        * python/lib/gdb/__init__.py (debug_methods): New attribute.
        * python/lib/gdb/debugmethods.py: New file.
        * python/lib/gdb/command/debugmethods.py: New file.

        testuite/
        * gdb.python/py-debugmethods.cc: New testcase to test debug
        methods.
        * gdb.python/py-debugmethods.exp: New tests to test debug
        methods.
        * gdb.python/py-debugmethods.py: Python script supporting the
        new testcase and tests.

        doc/
        * gdb.texinfo (Debug Methods In Python): New node.
        (Debug Method API): Likewise.
        (Writing a Debug Method): Likewise.

Attachment: dm_patch_v9.txt
Description: Text document


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