==== 6.14.1 The class_debug_info Structure ==== The **class_debug_info** structure contains all of the debugging information for a class or interface. It also contains tables of debugging information for all its classes' fields and methods. The items in the **class_debug_info** structure are defined as follows: **name_index** **Contains an index into the **strings_table[]** item of the debug_component** structure. The **strings_table[]** entry at the indexed location must be the fully-qualified name of this class. **access_flags** A two-byte mask of modifiers that apply to this class. The modifiers are: Modifier Value **ACC_PUBLIC** **0x0001** **ACC_FINAL** **0x0010** **ACC_REMOTE** **0x0020** **ACC_INTERFACE** **0x0200** **ACC_ABSTRACT** **0x0400** **ACC_SHAREABLE** **0x0800** The **ACC_SHAREABLE** flag indicates whether this class or interface is shareable.[10] A class is shareable if it implements (directly or indirectly) the ****javacard.framework.Shareable**** interface. An interface is shareable if it is or extends (directly or indirectly) the ****javacard.framework.Shareable**** interface. The **ACC_REMOTE** flag indicates whether this class or interface is remote. The value of this flag must be one if and only if the class or interface satisfies the requirements defined in [[2.2.6.1_Remote Classes and Remote Interfaces| Section 2.2.6.1, Remote Classes and Remote Interfaces]]. All other class access and modifier flags are defined in the same way and with the same restrictions as described in The Java Virtual Machine Specification. **location** The byte offset of the **class_info** or **interface_info** record for this class or interface into the info item of the Class Component ([[6.8_Class Component| Section 6.8, Class Component]]). **superclass_name_index** Contains an index into the ****strings_table[]**** item of the **debug_component** structure. The ****strings_table[]**** entry at the indexed location must be the fully-qualified name of the superclass of this class or the string "null" if the class has no superclass. **source_file_index** Contains the index into the ****strings_table[]**** item of the **debug_component** structure. The ****strings_table[]**** entry at the indexed location must be the name of the source file in which this class is defined. **interface_count** The number of indexes in the **interface_names_indexes[]** table. **field_count** The number of **field_debug_info** structures in the **fields[]** table. **method_count** The number of **method_debug_info** structures in the **methods[]** table. **interface_names_indexes[]** Contains the indexes into the ****strings_table[]**** item of the debug_component structure. The ****strings_table[]**** entry at each indexed location must be the name of an interface implemented by this class. There must be an index value present for every interface implemented by this class, including interfaces implemented by superclasses of this class and superinterfaces of the implemented interfaces. If **ACC_INTERFACE** is set, the **strings_table[**] entry at each indexed location must be the name of a super interface directly or indirectly extended by this interface. There must be an index value present for every super interface directly or indirectly extended by this interface. **fields[]** Contains **field_debug_info** structures for all the fields declared by this class, including static final fields of primitive types. Inherited fields are not included in this array. **methods[]** Contains **method_debug_info** structures for all the methods declared or defined in this class. Inherited methods are not included in this array.