Site Tools

Sidebar

Smart Card Solution

User Manual

JavaCard API Samples

Java Card Specification

Knowledge Sharing

javacard:jcvm:6.14.1_the_class_debug_info_structure

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.<SUP>[10]</SUP> 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 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 ( 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.

javacard/jcvm/6.14.1_the_class_debug_info_structure.txt · Last modified: 2017/05/13 04:10 (external edit)