classfile

package
v0.0.0-...-eb536d9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2023 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ConstantUtf8               = 1
	ConstantInteger            = 3
	ConstantFloat              = 4
	ConstantLong               = 5
	ConstantDouble             = 6
	ConstantClass              = 7
	ConstantString             = 8
	ConstantFieldRef           = 9
	ConstantMethodRef          = 10
	ConstantInterfaceMethodRef = 11
	ConstantNameAndType        = 12
	ConstantMethodHandle       = 15
	ConstantMethodType         = 16
	ConstantInvokeDynamic      = 18
)
View Source
const (
	Ref_getField uint8 = iota + 1
	Ref_getStatic
	Ref_putField
	Ref_putStatic
	Ref_invokeVirtual
	Ref_invokeStatic
	Ref_invokeSpecial
	Ref_newInvokeSpecial
	Ref_invokeInterface
)

*

Kind Description Interpretation 1 REF_getField getfield C.f:T 2 REF_getStatic getstatic C.f:T 3 REF_putField putfield C.f:T 4 REF_putStatic putstatic C.f:T 5 REF_invokeVirtual invokevirtual C.m:(A*)T 6 REF_invokeStatic invokestatic C.m:(A*)T 7 REF_invokeSpecial invokespecial C.m:(A*)T 8 REF_newInvokeSpecial new C; dup; invokespecial C.<init>:(A*)V 9 REF_invokeInterface invokeinterface C.m:(A*)T

Variables

This section is empty.

Functions

This section is empty.

Types

type AttributeInfo

type AttributeInfo interface {
	// contains filtered or unexported methods
}

type AttributeMarker

type AttributeMarker struct {
}

type BootstrapMethod

type BootstrapMethod struct {
	BootstrapMethodRef uint16
	BootstrapArguments []uint16
}

type BootstrapMethodsAttribute

type BootstrapMethodsAttribute struct {
	BootstrapMethods []BootstrapMethod
	// contains filtered or unexported fields
}

type ClassFile

type ClassFile struct {
	// contains filtered or unexported fields
}

* jvm8 doc: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html

ClassFile {
    u4             magic;
    u2             minor_version;
    u2             major_version;
    u2             constant_pool_count;
    cp_info        constant_pool[constant_pool_count-1];
    u2             access_flags;
    u2             this_class;
    u2             super_class;
    u2             interfaces_count;
    u2             interfaces[interfaces_count];
    u2             fields_count;
    field_info     fields[fields_count];
    u2             methods_count;
    method_info    methods[methods_count];
    u2             attributes_count;
    attribute_info attributes[attributes_count];
}

func Parse

func Parse(classData []byte) (cf *ClassFile, err error)

func (*ClassFile) AccessFlags

func (cf *ClassFile) AccessFlags() uint16

func (*ClassFile) ClassName

func (cf *ClassFile) ClassName() string

func (*ClassFile) ConstantPool

func (cf *ClassFile) ConstantPool() ConstantPool

func (*ClassFile) Fields

func (cf *ClassFile) Fields() []*MemberInfo

func (*ClassFile) InterfaceNames

func (cf *ClassFile) InterfaceNames() []string

func (*ClassFile) MajorVersion

func (cf *ClassFile) MajorVersion() uint16

func (*ClassFile) Methods

func (cf *ClassFile) Methods() []*MemberInfo

func (*ClassFile) MinorVersion

func (cf *ClassFile) MinorVersion() uint16

func (*ClassFile) RuntimeVisibleAnnotationData

func (cf *ClassFile) RuntimeVisibleAnnotationData() []byte

func (*ClassFile) Signature

func (cf *ClassFile) Signature() string

func (*ClassFile) SourceFile

func (cf *ClassFile) SourceFile() string

func (*ClassFile) SuperClassName

func (cf *ClassFile) SuperClassName() string

type ClassReader

type ClassReader struct {
	// contains filtered or unexported fields
}

type CodeAttribute

type CodeAttribute struct {
	// contains filtered or unexported fields
}

func (*CodeAttribute) Code

func (c *CodeAttribute) Code() []byte

func (*CodeAttribute) ExceptionTable

func (c *CodeAttribute) ExceptionTable() []*ExceptionTableEntry

func (*CodeAttribute) LineNumberTableAttribute

func (c *CodeAttribute) LineNumberTableAttribute() *LineNumberTableAttribute

func (*CodeAttribute) MaxLocals

func (c *CodeAttribute) MaxLocals() uint16

func (*CodeAttribute) MaxStack

func (c *CodeAttribute) MaxStack() uint16

type ConstantClassInfo

type ConstantClassInfo struct {
	// contains filtered or unexported fields
}

func (*ConstantClassInfo) Name

func (c *ConstantClassInfo) Name() string

type ConstantDoubleInfo

type ConstantDoubleInfo struct {
	// contains filtered or unexported fields
}

*

CONSTANT_Double_info {
    u1 tag;
    u4 high_bytes;
    u4 low_bytes;
}

func (*ConstantDoubleInfo) Value

func (c *ConstantDoubleInfo) Value() float64

type ConstantFieldRefInfo

type ConstantFieldRefInfo struct {
	ConstantMemberRefInfo
}

type ConstantFloatInfo

type ConstantFloatInfo struct {
	// contains filtered or unexported fields
}

*

CONSTANT_Float_info {
    u1 tag;
    u4 bytes;
}

func (*ConstantFloatInfo) Value

func (c *ConstantFloatInfo) Value() float32

type ConstantInfo

type ConstantInfo interface {
	// contains filtered or unexported methods
}

type ConstantIntegerInfo

type ConstantIntegerInfo struct {
	// contains filtered or unexported fields
}

*

CONSTANT_Integer_info {
    u1 tag;
    u4 bytes;
}

func (*ConstantIntegerInfo) Value

func (c *ConstantIntegerInfo) Value() int32

type ConstantInterfaceMethodRefInfo

type ConstantInterfaceMethodRefInfo struct {
	ConstantMemberRefInfo
}

type ConstantInvokeDynamicInfo

type ConstantInvokeDynamicInfo struct {
	// contains filtered or unexported fields
}

type ConstantLongInfo

type ConstantLongInfo struct {
	// contains filtered or unexported fields
}

*

CONSTANT_Long_info {
    u1 tag;
    u4 high_bytes;
    u4 low_bytes;
}

func (*ConstantLongInfo) Value

func (c *ConstantLongInfo) Value() int64

type ConstantMemberRefInfo

type ConstantMemberRefInfo struct {
	// contains filtered or unexported fields
}

func (*ConstantMemberRefInfo) ClassName

func (c *ConstantMemberRefInfo) ClassName() string

func (*ConstantMemberRefInfo) NameAndType

func (c *ConstantMemberRefInfo) NameAndType() (string, string)

type ConstantMethodHandleInfo

type ConstantMethodHandleInfo struct {
	// contains filtered or unexported fields
}

func (*ConstantMethodHandleInfo) GetFieldRefInfo

func (c *ConstantMethodHandleInfo) GetFieldRefInfo() *ConstantFieldRefInfo

func (*ConstantMethodHandleInfo) GetInterfaceMethodRefInfo

func (c *ConstantMethodHandleInfo) GetInterfaceMethodRefInfo() *ConstantInterfaceMethodRefInfo

func (*ConstantMethodHandleInfo) GetMethodRefInfo

func (c *ConstantMethodHandleInfo) GetMethodRefInfo() *ConstantMethodRefInfo

func (*ConstantMethodHandleInfo) GetRefInfo

type ConstantMethodRefInfo

type ConstantMethodRefInfo struct {
	ConstantMemberRefInfo
}

type ConstantMethodTypeInfo

type ConstantMethodTypeInfo struct {
	// contains filtered or unexported fields
}

type ConstantNameAndTypeInfo

type ConstantNameAndTypeInfo struct {
	// contains filtered or unexported fields
}

func (*ConstantNameAndTypeInfo) Descriptor

func (c *ConstantNameAndTypeInfo) Descriptor() string

func (*ConstantNameAndTypeInfo) Name

func (c *ConstantNameAndTypeInfo) Name() string

type ConstantPool

type ConstantPool []ConstantInfo

type ConstantStringInfo

type ConstantStringInfo struct {
	// contains filtered or unexported fields
}

func (*ConstantStringInfo) String

func (c *ConstantStringInfo) String() string

type ConstantUtf8Info

type ConstantUtf8Info struct {
	Val string
}

*

CONSTANT_Utf8_info {
    u1 tag;
    u2 length;
    u1 bytes[length];
}

type ConstantValueAttribute

type ConstantValueAttribute struct {
	// contains filtered or unexported fields
}

func (*ConstantValueAttribute) ConstantValueIndex

func (c *ConstantValueAttribute) ConstantValueIndex() uint16

type DeprecatedAttribute

type DeprecatedAttribute struct {
	AttributeMarker
}

type ExceptionTableEntry

type ExceptionTableEntry struct {
	StartPc   uint16
	EndPc     uint16
	HandlerPc uint16
	CatchType uint16
}

type ExceptionsAttribute

type ExceptionsAttribute struct {
	// contains filtered or unexported fields
}

func (*ExceptionsAttribute) Exceptions

func (e *ExceptionsAttribute) Exceptions() []string

type LineNumberTableAttribute

type LineNumberTableAttribute struct {
	LineNumberTable []*LineNumberTableEntry
}

func (*LineNumberTableAttribute) GetLineNumber

func (l *LineNumberTableAttribute) GetLineNumber(pc uint16) int

type LineNumberTableEntry

type LineNumberTableEntry struct {
	StartPc    uint16
	LineNumber uint16
}

type LocalVariableTableAttribute

type LocalVariableTableAttribute struct {
	// contains filtered or unexported fields
}

type LocalVariableTableEntry

type LocalVariableTableEntry struct {
	// contains filtered or unexported fields
}

type MemberInfo

type MemberInfo struct {
	// contains filtered or unexported fields
}

func (*MemberInfo) AccessFlags

func (info *MemberInfo) AccessFlags() uint16

func (*MemberInfo) Attributes

func (info *MemberInfo) Attributes() []AttributeInfo

func (*MemberInfo) CodeAttribute

func (info *MemberInfo) CodeAttribute() *CodeAttribute

func (*MemberInfo) ConstantValueAttribute

func (info *MemberInfo) ConstantValueAttribute() *ConstantValueAttribute

func (*MemberInfo) Descriptor

func (info *MemberInfo) Descriptor() string

func (*MemberInfo) Exceptions

func (info *MemberInfo) Exceptions() []string

func (*MemberInfo) Name

func (info *MemberInfo) Name() string

func (*MemberInfo) RuntimeVisibleAnnotationData

func (info *MemberInfo) RuntimeVisibleAnnotationData() []byte

func (*MemberInfo) RuntimeVisibleParameterAnnotationData

func (info *MemberInfo) RuntimeVisibleParameterAnnotationData() []byte

func (*MemberInfo) Signature

func (info *MemberInfo) Signature() string

type RuntimeVisibleAnnotationsAttribute

type RuntimeVisibleAnnotationsAttribute struct {
	Bytes []byte
	// contains filtered or unexported fields
}

*

RuntimeVisibleAnnotations_attribute {
	u2 attribute_name_index;
	u4 attribute_length;
	u2 num_annotations;
	annotation annotations[num_annotations];
}
annotation {
	u2 type_index;		//CONSTANT_Utf8_info
	u2 num_element_value_pairs;
	{ 	u2 element_name_index;   //CONSTANT_Utf8_info
		element_value value;
	} element_value_pairs[num_element_value_pairs];
}
element_value {
	u1 tag;
	union {
		u2 const_value_index;
		{ 	u2 type_name_index;
			u2 const_name_index;
		} enum_const_value;
		u2 class_info_index;
		annotation annotation_value;
		{ 	u2 num_values;
			element_value values[num_values];
		} array_value;
	} value;
}

type RuntimeVisibleParameterAnnotationsAttribute

type RuntimeVisibleParameterAnnotationsAttribute struct {
	Bytes []byte
	// contains filtered or unexported fields
}

type SignatureAttribute

type SignatureAttribute struct {
	Signature string
	// contains filtered or unexported fields
}

*

Signature_attribute {
	u2 attribute_name_index;
	u4 attribute_length;
	u2 signature_index;
}

type SourceFileAttribute

type SourceFileAttribute struct {
	// contains filtered or unexported fields
}

func (*SourceFileAttribute) SourceFile

func (s *SourceFileAttribute) SourceFile() string

type SyntheticAttribute

type SyntheticAttribute struct {
	AttributeMarker
}

type UnparsedAttributeInfo

type UnparsedAttributeInfo struct {
	// contains filtered or unexported fields
}

func (*UnparsedAttributeInfo) Name

func (u *UnparsedAttributeInfo) Name() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL