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]

[PING^2] [Patch v11] Debug methods in GDB Python


Link to earlier posting of the latest version (v11) of the patch:
https://sourceware.org/ml/gdb-patches/2014-03/msg00037.html

Summary:

1. v11 addresses Doug's extensive comments from his review.

2. Eli had comments on the doc changes. I will address them with the
next round of code changes.

3. The patch currently targets debug methods for C++ only.

4. The overall idea: a user will have to define a method matcher which
returns a list of matching workers (also defined by the user) if any.
GDB will first call into the matchers registered with it and collects
matching workers if any. It then iterates over the matching workers to
perform overload resolution.

ChangeLog
2014-03-27  Siva Chandra Reddy  <sivachandra@google.com>

        * Makefile.in: Add entries for new files.
        * NEWS (Python Scripting): Add entry about this feature.
        * 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_ops): Add the
        debug method interface.
        * 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_ptr)): New type.
        (debug_method_worker_ptr): New typedef.
        (debug_method_worker_vec): Likewise.
        * 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-debug_methods.c: New file.
        * python/py-objfile.c (objfile_object): New field
        'debug_method_matchers'.
        (objfpy_dealloc): XDECREF on the new debug_method_matchers field.
        (objfpy_new, objfile_to_objfile_object): Initialize
        debug_method_macthers field.
        (objfpy_get_debug_method_matchers): New function.
            (objfile_getset): New entry 'debug_method_matchers'.
        * python/py-progspace.c (pspace_object): New field
        'debug_method_matchers'.
        (pspy_dealloc): XDECREF on the new debug_method_matchers field.
        (pspy_new, pspace_to_pspace_object): Initialize
        debug_method_matchers field.
        (pspy_get_debug_method_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_debug_methods.
        * python/lib/gdb/__init__.py (debug_method_matcherss): 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/
        * python.texi (Debug Methods In Python): New node.
        (Debug Method API): Likewise.
        (Writing a Debug Method): Likewise.

Attachment: dm_patch_v11.txt
Description: Text document


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