This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Debug Methods in GDB Python
- From: Doug Evans <xdje42 at gmail dot com>
- To: Siva Chandra <sivachandra at google dot com>
- Cc: gdb-patches <gdb-patches at sourceware dot org>
- Date: Thu, 05 Dec 2013 22:30:30 -0800
- Subject: Re: [PATCH] Debug Methods in GDB Python
- Authentication-results: sourceware.org; auth=none
- References: <CAGyQ6gxURLZn0bVH0ztDsyqNyNCNsEx-QkJa6OLd0o8u4Vv_Yg at mail dot gmail dot com> <CAGyQ6gxe2UiMFJs6LDBxetc9ZDuhHj5uc0HP0Pd=ebqNdJ-_Mg at mail dot gmail dot com>
Siva Chandra <sivachandra@google.com> writes:
> Doug pointed out offlist that the ChangeLog was improperly done. Below
> is the corrected ChangeLog entry. For convenience, I have also
> attached the same patch that I have posted last time.
>
> 2013-11-25 Siva Chandra Reddy <sivachandra@google.com>
>
> Add Debug methods support in GDB Python.
>
> * 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.
> * 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.
> * ext-function.c: New file.
> * ext-function.h: New file.
> * python/py-debugmethods.c: New file.
> * python/py-objfile.c (objfile_object): New field
> 'debug_methods'.
> (objfpy_dealloc): XDECREF on the new debug_methods field.
> (objfpy_new, objfile_to_objfile_object): Initialize
> debug_methods field.
> (objfpy_get_debug_methods): New function.
> (objfile_getset): New entry 'debug_methods'.
> * python/py-progspace.c (pspace_object): New field
> 'debug_methods'.
> (pspy_dealloc): XDECREF on the new debug_methods field.
> (pspy_new, pspace_to_pspace_object): Initialize
> debug_methods field.
> (pspy_get_debug_methods): 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/debug-methods.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.
Sorry for the delay.
I've been wanting to find time to investigate some of the suggestions I made.
e.g., instead of DEFAULT_DEBUG_METHOD_GROUP, etc.
have the grouping work the same way it does for the libstdc++
pretty-printers. Have you thought about it?