Smart Card Solution
User Manual
- R502 Manual
JavaCard API Samples
- Algorithm
Java Card Specification
Knowledge Sharing
Smart Card Solution
User Manual
JavaCard API Samples
Java Card Specification
Knowledge Sharing
The method_debug_info structure describes a method of a class. It can describe methods that are either virtual or non-virtual (static or initialization methods). The structure is defined as follows:
The items in the method_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 simple (meaning, not fully-qualified) name of the method (for example, “lookupAID”).
descriptor_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 argument and return types of the method (meaning, the signature without the method name). Class types are fully-qualified (for example, “([BSB)Ljavacard/framework/AID;”)
access_flags
A two-byte mask of modifiers that apply to this method.
Modifier
Value
ACC_PUBLIC
0x0001
ACC_PRIVATE
0x0002
ACC_PROTECTED
0x0004
ACC_STATIC
0x0008
ACC_FINAL
0x0010
ACC_NATIVE
0x0100
ACC_ABSTRACT
0x0400
The ACC_NATIVE flag is only valid for methods of a package located in the card mask. It cannot be used for methods contained in a CAP file.
All other method access and modifier flags are defined in the same way and with the same restrictions as described in The Java Virtual Machine Specification.
location
A byte offset of the method_info structure for this method into the info item of the Method Component ( Section 6.9, Method Component). Abstract methods have a location of zero.
header_size
The size in bytes of the header of the method. Abstract methods have a header_size of zero.
body_size
The size in bytes of the body of the method, not including the method header. Abstract methods have a body_size of zero.
variable_count
The number of variable_info entries in the variable_table[] item. Abstract methods have a variable_count of zero.
line_count
The number of line_info entries in the line_table[] item. Abstract methods have a line_count of zero.
variable_table[]
Contains the variable_info structures for all variables in this method.
The variable_info structure describes a single local variable of a method. It indicates the index into the local variables of the current frame at which the local variable can be found, as well as the name and type of the variable. It also indicates the range of bytecodes within which the variable has a value.
The items in the variable_info structure are defined as follows:
index
The index of the variable in the local stack frame, as used in load and store bytecodes. If the variable at index is of type int, it occupies both index and index + 1.
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 name of the local variable, (for example, “applets”).
descriptor_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 type of the local variable. Class types are fully-qualified (for example, “[Ljavacard/framework/Applet;”).
start_pc
The index of the first bytecode in which the variable is in-scope and valid.
length
Number of bytecodes in which the variable is in-scope and valid. The value of start_pc + length will be either the index of the next bytecode after the valid range, or the first index beyond the end of the bytecode array.
line_table[]
Contains the line_info structures that map bytecode instructions of this method to lines in the class's source file.
Each line_info item represents a mapping of a range of bytecode instructions to a particular line in the source file that contains the method. The range of instructions is from start_pc to end_pc, inclusive. start_pc and end_pc represent a zero-based byte offset within the method. The source_line is the one-based line number in the source file. The structure is defined as follows:
The items in the line_info structure are defined as follows:
start_pc
The byte offset of the first bytecode in the range of instructions.
end_pc
The byte offset of the last operand of the last bytecode in the range of instructions.
source_line
Line number in the source file.
Copyright © 2005, Sun Microsystems, Inc. All Rights Reserved.