The following patch adds initial support for simple java inferior calls. Standard calls are either calling a member function of a variable which is a class or a static member function of a class by name. There are a number of complex scenarios that do not work, but this patch lays the groundwork for supporting them in the future. There a few differences between Java and C++ that require handling. First of all, the Java debug info for a member has a fully qualified name including prototype. There is an open bugzilla bug against gcj for this, however, I think some rethinking may be required. In a recent C++ bug, I have found that C++ does not correctly list or properly allow selection of multiple constructors with varying prototypes. It gets the line numbers and prototypes all wrong. Java, surprisingly, does the right thing. It lists the correct line numbers and prototypes, and selection works properly. The fully qualified member name does interfere with tab completion so there is work required. I have dealt with the gcj problem by parsing out the qualifiers and prototype for a Java member name. Another key difference is how the vtable is structured. For Java, the vtable is an array of function pointers and is located by the first word of every class. It is much more complex for C++ so I have forked the logic that accesses the vtable in gnu-v3-abi.c. Ok to commit or comments? -- Jeff J. 2004-03-23 Jeff Johnston * dwarfread2.c (dwarf2_add_member_fn): Add support for Java's format for member name debug info. * gdbtypes.h (TYPE_JAVA_FN_FIELD_VOFFSET): New macro. * gnu-v3-abi.c (build_gdb_vtable_type): Adjust comment. (java_vtable_type_gdbarch_data): New static data. (build_gdb_java_vtable_type): New function. (gnuv3_virtual_fn_field): Add support for Java vtable. (init_gnuv3_ops): Add building the Java vtable type. * valarith.c (value_subscript_1): New function that takes c_style as argument. (value_subscript): Change to call value_subscript_1. * value.h (value_subscript_1): New prototype. * symtab.c (lookup_symbol): Support Java demangling. * jv-exp.y (FuncStart): New semantic for a function call. (MethodInvocation): Support standard function calls. Change the error message for forms of function calls not yet supported.