Re: [RFC] Debug Methods in GDB Python

Siva Chandra
2013-02-25T23:02:04Z

Friendly ping: Is there any feedback on the patch? I do not want to
get into tests and docs without first clearing the basics of the
patch.

On Mon, Jan 28, 2013 at 5:49 PM, Siva Chandra <sivachandra@google.com> wrote:
> Attached is a new version of the patch which I have now regression
> tested. Except for tests and docs, I think it is complete wrt the
> feature set I have in mind. Hence, the caveats from the previous mail
> still apply.
>
> 2013-01-01 Siva Chandra Reddy <sivachandra@google.com>
>
> * Makefile.in: Add entries for new files
> * data-directory/Makefile.in: Add entery for new Python file
> * eval.c: Use new 'find_overload_match' signature.
> * ext-function.c: Support for working with functions/methods
> defined in an extension language.
> * ext-function.h: Support for working with functions/methods
> defined in an extension language.
> * python/lib/gdb/debugmethods.py: Python side of the support
> for debug methods in Python.
> * python/py-debugmethods.c: C side of the support for debug
> methods in Python.
> * python/py-objfile.c: Add 'debug_methods' attribute to
> gdb.Objfile.
> * python/python-internal.h: Add new function
> gdb.enable_debug_methods to the Python module 'gdb'.
> * python/python.c: Add new function gdb.enable_debug_methods to
> the Python module 'gdb'.
> * python/python.h: Add declarations of new functions.
> * valarith.c: Use methods defined in extension languages.
> * valops.c: Use methods defined in extension languages.
> * value.h: New signature for 'find_overload_match'.
>
> On Mon, Jan 7, 2013 at 1:21 PM, Siva Chandra <sivachandra@google.com> wrote:
>> 1. The patch is incomplete in the sense that tests and documentation
>> are missing. Also, ways to enable and disable single or group of debug
>> methods is missing. At this point, I am looking for feedback on my
>> direction and the way I am intercepting the normal GDB flow to lookup
>> methods defined in Python. I will work on completing the patch once
>> there is an agreement on these basics.
>>
>> 2. I did not intend to provide a way for the user to define new or
>> override static methods via Python.
>>
>> 3. I did not intend to provide a way for the user to define new
>> virtual methods in Python. The user can however override existing
>> virtual and non-virtual methods. The user can also define new
>> non-virtual methods in Python.
>>
>> 4. Doug suggested that I use the C++ infrastructure in GDB as much as
>> possible. I feel I have done so.