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] |
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] |