class_head: The head of the disassembled class =========== $name - name of the class $filename - (global:)like $name $major - major version number of the classfile (usually 45) $minor - minor version number of the classfile (usually 3) $class_deprecated - a flag. If set, the class is marked as "deprecated" constants_head: Head of the class's constant pool =============== $num - number of constant pool entries (minus one, as the zero'th element in the constant pool is never set) $pool_count - (global:)same as $num CONSTANT_Utf8: string entry in constant pool: An utf8-format-string. ============== Not directly printed to output, but stored.(Exceptional case for everthing which begins with "CONSTANT_") $str - ascii equivalent of the string (every nonprintable character converted to "_") $constantpool[$i] - (global:)same as $str $i - index in constant pool CONSTANT_Integer: integer entry in constant pool. Like CONSTANT_Utf8, this ================= is not printed directly to output. use "constant". $val - Value of the integer. $constantpool[$i] - (global:)same as val $i - index in constant pool CONSTANT_Float: A 32-Bit IEEE78 Floating-Point value. =============== $val - the value $sign - sign of the value (0: positive, 1: negative) $mantissa - mantissa of the value $exponent - exponent of the value $constantpool[$i] - (global:)same as $val $i - index in constant pool CONSTANT_Long: A 64-Bit Integer. ============== $val - the value $i - index in constant pool $constantpool[$i] - (global:)same as $val CONSTANT_Class: Reference to a class =============== $index - index of the string entry in the constant pool which describes the class name. $str - name of the class $i - index in constant pool $constantpool[$i] - (global:)same as $index CONSTANT_String: A string. ================ $index - index of the string entry in the constant pool which describes the string's contents. $str - the string. (looked up) $i - index in constant pool $constantpool[$i] - (global:)same as $index CONSTANT_Fieldref: class, name and type of a field ================== $class_index - the index of an constant pool entry where the class is stored. $nt_index - the index of an constant pool entry where the name and type descriptor is stored. $i - index in constant pool $constantpool1[$i] - (global:)same as $classindex $constantpool2[$i] - (global:)same as $nt_index CONSTANT_Methodref: method, name and type of a method. =================== $class_index - index of an contant pool entry describing the corresponding class $nt_index - Der index of the constant pool entry describing the name and type. $i - index in constant pool $constantpool1[$i] - (global:)same as $classindex $constantpool2[$i] - (global:)same as $nt_index CONSTANT_InterfaceMethodref: class, name and type of an interface. ============================ $class_index - index of the entry where the correspoding class is defined $nt_index - Der index of the constant pool entry describing the name and type. $i - index in constant pool $constantpool1[$i] - (global:)same as $classindex $constantpool2[$i] - (global:)same as $nt_index CONSTANT_NameAndType: name and typ (referenced by fieldref, methodref, interfacemethodref) ===================== $name_index - index of a constant pool entry with the name (as string) $type_index - index of a constant pool entry with the type $name - name as string (looked up) $type - type as string (looked up) $i - index in constant pool $constantpool1[$i] - (global:)same as $name_index $constantpool2[$i] - (global:)same as $type_index constants_seperator: seperates all constants ==================== constant: Eine Konstante im ,,constant pool'' ========= $i - Die momentane Position im ,,constant pool'' $value - Der Wert der Konstante (Ausgabe eines CONSTANT_*-Modifiers) constants_tail: end of the "constant pool" =============== access_flags: access flags of a class. Every class has these. They will ============= be encountered after the constant pool. $flags - short integer of the flags. (like stored in the binary class file) $class_flags - (global:)same as $flags $ACC_PUBLIC - 1 if true, 0 otherwise $ACC_FINAL - $ACC_SUPER - $ACC_INTERFACE - $ACC_ABSTRACT - this_class: name of the class =========== $name - name of the class (looked up) $this_name - (global:)same as $name super_class: name of the super class ============ $i - index, referencing the constant pool entry which describes the name $name - name of the class (looked up) $super_name - (global:)same as $name interfaces_head: head of the interfaces implemented by the class ================ $num - number of the interface $interfaces_count - (global:)same as num interface: one interface ========== $i - index of this interface $index - index of the constant pool entry describing the interface $name - name of the interface interfaces_separator: seperates all interfaces ===================== interfaces_tail: end of the interfaces list. ================ fields_head: head of the fields defined in the class ============ $num - number of entries. $fields_count - (global:)same as $num field: a single field ====== $flags - rights of the field (public, protected, static etc.), coded as short integer $field_flags - like $flags $ACC_PUBLIC - $ACC_PRIVATE - $ACC_PROTECTED - $ACC_STATIC - $ACC_FINAL - $ACC_VOLATILE - $ACC_TRANSIENT - $name_index - index of the constant pool entry which describes the field $type_index - index of the constant pool entry which describes the type of the field $attributes_count - number of attributes. A field can have several attributes, which represent extendable language properties $constant_index - 0 is no inital value, otherwise an index in the constant pool $name - name of the field (looked up) $type - type of the field (lookup up) $dim - dimension of the field (lookup up) fields_separator: seperates the class's fields ================= fields_tail: ends the field list ============ methods_head: starts the methods in the class ============= $num - number of methods $methods_count - (global:)same as $num method_head: head of a method (a method constists of throws, arguments ============ and the method code) $name - name of the method $flags - properties of the method $return - returntype of the method $ACC_PUBLIC - $ACC_PRIVATE - $ACC_PROTECTED - $ACC_STATIC - $ACC_FINAL - $ACC_SYNCHRONIZED - $ACC_NATIVE - $ACC_ABSTRACT - arguments_head: starts the method's arguments =============== $return - returntype of the method $returndim - dimension of the method's returntype arguments_seperator: seperates the methods's arguments ==================== $return - returntype of the method $returndim - dimension of the method's returntype argument: one argument ========= $arg - type of the argument $dim - dimension of the argument arguments_tail: ends the arguments =============== $return - returntype of the method $returndim - dimension of the method's returntype throws_head: head of the method's throws list. ============ $num - number of throws thows_separator: seperates the throws ================ throw: one throw statement ====== $i - number of the throw $index - index of the constant pool entry which contains the throw name $name - name of the throw (lookup up) throws_tail: end of the throw list ============ ops_head: starts the bytecode of a method ========= $name - Name of the method $max_stack - maximal stack space this method will used (specified in the classfile) $max_locals - number of variables used $code_count - length of the method bytecode default: (not an op) if there was a switch statement, this will be ======== called at the beginning of the corresponding default block $pos - current position in the bytecode $nr - current opcode number $linenumber - current linenumber (only if the class has debug infos) case: (not an op) if there was a switch statement, this will be ===== at every corresponding case $pos - current position in the bytecode $nr - current opcode number $case - number of the case-label $linenumber - current linenumber (only if the class has debug infos) label: (not an op) A jumplabel ====== $pos - current position in the bytecode $nr - current opcode number $labelnr - Die Nummer des Labels $linenumber - current linenumber (only if the class has debug infos) local: (not an op) definition of a local variable (only if the class ====== has debug infos) $pos - current position in the bytecode $nr - current opcode number $linenumber - current line number $name_index - index in the constant pool: name $type_index - index in the constant pool: type $slot - register number to apply the name to $start_pc - start position of the byte code block where the variable is defined $length - length of the byte code block where the variable is defined op: One (generic) opcode === $pos - current position in the bytecode $nr - current opcode number $linenumber - current linenumber (only if the class has debug infos) $name - mnemomic (name) of the opcode $arg[x] - x'th argument of the opcode $jump - (jumps) relative jump length, in number of opcodes $label - (jumps) label the jump goes to $default - (switch) the default destination $low - (tableswitch) lower bound for the parameter range $high - (tableswitch) upper bound for the parameter range $jump[x] - (tableswitch) jump adress for value x+$low $num - (lookupswitch) number of lookup entries $key[x] - (lookupswitch) value of the x'th lookup $jump[x] - (lookupswitch) jumpadress of the x'th lookup ops_separator: seperates the opcodes ============== ops_tail: ends the opcodes ========= try_head: Start of a try\{ Statement. Subsequent Code will have a ========= handler at adress \$handler_pc installed to catch the exception referenced by \$catch_type_index $start_pc - Start of the try block $end_pc - End of the try block $handler_pc - Handler adress (Start of the catch block, so to say) $catch_type_index - Index into the constant pool: What do we catch? try_tail: End of a try\{ Statement. The handler will be disalocated ========= $start_pc - Start of the try block $end_pc - End of the try block $handler_pc - Handler adress (Start of the catch block, so to say) $catch_type_index - Index into the constant pool: What do we catch? catch: A catch is the beginning of a Exception-Handling Routine ====== which corresponds to a try-Block. $start_pc - Start of the try block $end_pc - End of the try block $handler_pc - Handler adress (Start of the catch block, so to say) $catch_type_index - Index into the constant pool: What do we catch? localvars_head: head of the localvar-debuginfo =============== $locals_count - number of local variables localvars_separator: seperates local variables ==================== localvar: $name_index index in the constant pool describing the ========= localvar's name $type_index - index in the constant pool describing the localvar's type $slot - register number to apply the name to $start_pc - start position of the byte code block where the variable is defined $length - length of the byte code block where the variable is defined localvars_tail: End of the local variable table =============== linenumbers_head: Start of the line number table (only if the classfile has ================= debuginfos) linenumbers_separator: seperates the linenumbers ====================== linenumber: A line number block. This means that all opcodes between =========== $start_pc and the subsequent $start_pc will result from source code defined on line $linenumber $start_pc - $line_number - linenumbers_tail: end of the line number table ================= methods_separator: Seperates the class's methods ================== methods_tail: ends the class's methods ============= attributes_head: Every class has some (or none) attribues. These describe ================ special properties of the class, e.g. the source file name. $num - number of attributes $attributes_count - (global:)same as $num attribute: One single attribute ========== $name - name of the attribute $num - number of bytes in the attribute's body $b[i] - the i-th byte in the attribute's body source_file: Name of the class's sourcefile. Not always defined. ============ $name - name of the sourcefile $source_name - (global:)same as name attributes_separator: seperates the attributes ===================== attributes_tail: ends the class's attributes ================