Hi, attaching a straightforward support for DW_TAG_interface_type. Only the fixup_partial_die() presence of DW_TAG_class_type was not copied for DW_TAG_interface_type as DW_TAG_interface_type should never be anonymous. http://gcc.gnu.org/ml/gcc/2007-12/msg00583.html I hope to later extend it to utilize the new information (and print the class<->struct<->interface types identified appropriately). x86_64 GDB testsuite regressions free. Regards, Jan ------------------------------------------------------------------------------ GCC recently wanted to implement Java DW_TAG_interface_type (it was using DW_TAG_structure_type for everything): http://gcc.gnu.org/ml/gcc-patches/2007-11/msg01659.html but DW_TAG_interface_type is so far completely unsupported by GDB: http://gcc.gnu.org/ml/gcc/2007-12/msg00576.html Therefore DW_TAG_interface_type has became disabled now upstream: http://gcc.gnu.org/ml/gcc/2007-12/msg00626.html But it would be nice to enable it one day. GDB currently autodetects the interface type in java_type_print_derivation_info() according to ff it has virtual inheritance (I expect it is not ambiguous for Java). Patch to enable DW_TAG_interface_type production for the current GCC snapshot: --- gcc/java/lang.c (revision 131124) +++ gcc/java/lang.c (working copy) @@ -965,9 +965,7 @@ java_classify_record (tree type) if (! CLASS_P (type)) return RECORD_IS_STRUCT; - /* ??? GDB does not support DW_TAG_interface_type as of December, - 2007. Re-enable this at a later time. */ - if (0 && CLASS_INTERFACE (TYPE_NAME (type))) + if (CLASS_INTERFACE (TYPE_NAME (type))) return RECORD_IS_INTERFACE; return RECORD_IS_CLASS;