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 2/4 v14] Add xmethod (was debug method) interface to the extension language API


This part of the patch series was previously approved but sending out
for review again because of the following changes:

1. The name "debug methods" has been changed to "xmethods".  The
attached patch does not change the name at every instance, but only
with the new changes made after v13.  The reason is that I am not sure
if we are going to stick with the name "xmethod".  I thought leaving
in both the names for now would help is deciding which seems better,
but if it makes reading difficult, I can change it all places.

2. "xmethods" now have an associated type, TYPE_CODE_XMETHOD.  The
function find_overload_match returns a value of type TYPE_CODE_XMETHOD
if the best matching method is an xmethod.  This change is in part 3/4
of this series, but the required infrastructure is added in this part.

ChangeLog
2014-04-28  Siva Chandra Reddy  <sivachandra@google.com>

        * defs.h (enum lval_type): New enumerator "lval_xmethod".
        * extension-priv.h (struct extension_language_ops): Add the
        debug method interface.
        * extension.c (new_debug_method_worker, clone_debug_method_worker,
        get_matching_debug_method_workers, get_debug_method_argtypes,
        invoke_debug_method, free_xmethod_worker,
        free_debug_method_worker_vec,
        make_debug_method_worker_vec_cleanup): New functions.
        * extension.h: #include "common/vec.h".
        New function declarations.
        (struct debug_method_worker): New struct.
        (VEC (debug_method_worker_ptr)): New vector type.
        (debug_method_worker_ptr): New typedef.
        (debug_method_worker_vec): Likewise.
        * gdbtypes.h (enum type_code): New enumerator TYPE_CODE_XMETHOD.
        (struct builtin_type): New field "xmethod".
        * gdbtypes.c (gdbtypes_post_init): Initialize "xmethod" field of
        builtin_type.
        * value.c: #include "extension.h".
        (struct value): New field XM_WORKER in the field LOCATION.
        (value_of_xmethod, call_xmethod, free_xmethod_value): New
        functions.
        * value.h: Declare new functions value_of_xmethod, call_xmethod
        and free_xmethod_value.

Attachment: dm_extension_api_v14.txt
Description: Text document


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