xxd


Code


方法表


{

attribute_name_index u2 1  -指向CONSTANT_Utf8_info常量的索引,表示属性的名称

attribute_length u4 1 属性值的长度

max_stack u2 1 操作数栈深度的最大值

max_locals u2 1 局部变量表所需的存储空间

code_length u4 1

Code u1 code_length code_length与code存储Java源程序编译后的字节码指令

exception_table_length u2 1

exception_table exception_info exception_table_length

attribute_count u2 1

Attributes attribute_info attributes attributes_count

}


ConstantValue


字段表

通知虚拟机自动为静态变量赋值


{

attribute_name_index u2 1  -指向CONSTANT_Utf8_info常量的索引,表示属性的名称

attribute_length u4 1 属性值的长度

constantvalue_index u2 1 代表常量池中一个字面量的引用

}


Deprecated


类、方法表、字段表

某个类、字段或方法不在推荐使用


{

attribute_name_index u2 1  -指向CONSTANT_Utf8_info常量的索引,表示属性的名称

attribute_length u4 1 属性值的长度

}


Exceptions


方法表

列出方法中可能抛出的受检查异常


{

attribute_name_index u2 1  -指向CONSTANT_Utf8_info常量的索引,表示属性的名称

attribute_length u4 1 属性值的长度

number_of_exceptions u2 1 可能抛出number_of_exceptions种异常

exception_index_table u2 number_of_exception 每一种受检查异常用exception_index_table项表示,这是 个指向常量池中CONSTANT_Utf8_info型常量的索引

}


EnclosingMethod


类文件


InnerClass


类文件

记录内部类与宿主类之间的关联


{

attribute_name_index u2 1  -指向CONSTANT_Utf8_info常量的索引,表示属性的名称

attribute_length u4 1 属性值的长度

number_of_classes  u2 1 记录了多少个内部类的信息

Inner_classes inner_classes_info number_of_classes  每一个内部类的信息都由一个inner_classes_info表进行描述

}

Inner_classes_info {

Inner_class_info_index u2 1 指向常量池中CONSTANT_Class_info类型常量的索引,内部类的符号引用

outer_class_info_index u2 1 指向常量池中CONSTANT_Class_info类型常量的索引,宿主类的符号引用

Inner_name_index u2 1 指向常量池中CONSTANT_Class_info类型常量的索引,内部类名称,匿名内部类值为0

Inner_class_access_flags u2 1 内部类的访问标志

}


LineNumberTable


Code属性

描述Java源码行号与字节码行号(字节码的偏移量)之间的对应关系


{

attribute_name_index u2 1  -指向CONSTANT_Utf8_info常量的索引,表示属性的名称

attribute_length u4 1 属性值的长度

line_number_table_length u2 1

line_number_table

line_number_info(start_pc u2字节码行号,line_number u2 Java源码行号)

Line_number_table_length

}


LocalVariableTable

LocalVariableTypeTable


Code属性

描述栈帧中局部变量表的变量与Java源码中定义的变量之间的关系


{

attribute_name_index u2 1  -指向CONSTANT_Utf8_info常量的索引,表示属性的名称

attribute_length u4 1 属性值的长度

local_variable_table_length u2 1

local_variable_table

local_variable_info(start_pc u2字节码行号,line_number u2 Java源码行号)

local_variable_table_length

}

Local_variable_info {

start_pc u2 1 局部变量的生命周期开始的字节码偏移量

length u2 1 作用范围覆盖的长度,与start_pc结合表示局部变量在字节码中的作用域范围

name_index u2 1 局部变量的名称

descriptor_index u2 1 局部变量的描述符

index u2 1 局部变量在栈帧局部变量表中Slot的位置

}


StackMapTable


Code属性

在虚拟机类加载的字节码验证阶段被新类型检查验证器使用


{

attribute_name_index u2 1  -指向CONSTANT_Utf8_info常量的索引,表示属性的名称

attribute_length u4 1 属性值的长度

Number_of_entries u2 1

Stack_map_frame_entries stack_map_frame number_of_entries

}


Signature


类、方法表、字段表


{

attribute_name_index u2 1  -指向CONSTANT_Utf8_info常量的索引,表示属性的名称

attribute_length u4 1 属性值的长度

Signature_index u2 1 指向CONSTANT_Utf8_info常量的索引,表示类签名、方法类型签名或字段类型签名

}


SourceFile


类文件

生成class文件的源码文件名称


{

attribute_name_index u2 1  -指向CONSTANT_Utf8_info常量的索引,表示属性的名称

attribute_length u4 1 属性值的长度

sourcefile_index u2 1 类型是CONSTANT_Utf8_info类型,表示源码文件的文件名

}


SourceDebugExtension


类文件


Synthetic


类、方法表、字段表

此字段或方法不是由源码产生,而是由编译器自行添加的


{

attribute_name_index u2 1  -指向CONSTANT_Utf8_info常量的索引,表示属性的名称

attribute_length u4 1 属性值的长度

}


LocalVariableTypeTable



RuntimeVisibleAnnotations


类、方法表、字段表


RuntimeInvisibleAnnotations


类、方法表、字段表


RuntimeVisibleParameterAnnotations


方法表


RuntimeInvisibleParameterAnnotations


方法表


AnnotationDefault


方法表


BootstrapMethods


类文件


{

attribute_name_index u2 1  -指向CONSTANT_Utf8_info常量的索引,表示属性的名称

attribute_length u4 1 属性值的长度

Num_bootstrap_methods u2 1

Bootstrap_methods bootstrap_method num_bootstrap_methods

}

Bootstrap_method{

Bootstrap_method_ref u2 1

Num_bootstrap_arguments u2 1

Bootstrap+arguments u2 num_bootstrap_arguments

}

时间: 2024-11-05 13:40:14

xxd的相关文章

Linux -- xxd (转)

linux xxd命令 xxd [options] [infile [outfile]] xxd -r[evert] [options] [infile [outfile]] xxd 命令用于用二进制或十六进制显示文件的内容,如果没有指定outfile参数,则把结果显示在屏幕上,如果指定了outfile则把结果输出到 outfile中:如果infile参数为 – 或则没有指定infile参数,则默认从标准输入读入. 常用选项: -b 转 到 比特(二进制 数字) 模式, 而不是十六进制模式.在这

Linux -- xxd 整理自man 手册 (MARK)

XXD(1)                                                        General Commands Manual                                                        XXD(1) NAME       xxd - make a hexdump or do the reverse. SYNOPSIS       xxd -h[elp]       xxd [options] [inf

linux学习笔记(12)man ascii/cal/xxd/ssh

linux下的命令通常他带有很多的选项,所以看起来较为复杂,但是常用的其实就一两个,所以我们所要记住的就是最常用的用法. 1.man ascii 该命令会打印出八进制.十六进制和十进制的ASCII表,方便在需要时查看. 2.cal 常用参数 cal命令不带参数只显示当前月份的日历. -1      显示一个月的月历(Display single month output. This is the default.) -3      显示系统前一个月,当前月,下一个月的月历(Display pre

UNIX常见命令索引(rev,paste,join,tr,bc,readelf,strings,xxd)

rev rev file 对读入的每一行,输出其倒序后的结果 paste paste [options] files 将files中的文件每个各自获取一行,并用tab(默认)将它们连接起来合成新的一行. -d LIST 不使用默认的tab,而是用LIST中的字符来逐个连接每一行.LIST可以是一个或者多个\n,\t,\\或者\0,多个字符时逐个使用每个字符. -s 先将单个输入文件中的每一行连接起来(使用默认tab或者-d指定的字符),再用换行符连接文件列表中的各个文件. - 放在files列表

Linux xxd命令

一.简介 xxd 命令用于使用二进制或十六进制格式显示文件内容,可以将指定文件或标准输入以十六进制转储,也可以把十六进制转储转换成原来的二进制形式. 二.选项 http://www.cnblogs.com/kwliu/p/3709707.html 三.实例 http://blog.csdn.net/lcz_ptr/article/details/7737359

使用xxd命令把png图片转成c语言使用的数组

#!/bin/bash image_list=$(ls *.png) for imag in ${image_list} do if test -f $imag then xxd -i ${imag} >> test.h fi done 参考:http://www.cnblogs.com/killkill/archive/2010/06/23/1763785.html 使用xxd命令把png图片转成c语言使用的数组

c语言-格式控制字符 %XXd 用法

d格式字符 用来输出十进制整数,有以下几种用法: 1. %d, 按整型数据的实际长度输出. 2.  %md,m为指定输出的整型位数的宽度,如果整型数据的实际位数小于m,则左端补以空格,如果大于m,则按实际位数输出. 3. %0md,同上,当整型数据实际位数小于m时,左端补以数字0,而不是空格. 4. %.md, 同 %0md. 5. %ld,   按长整型数据输出. 举例: int main() { int i(7); printf("%d\n",i); printf("%3

在Linux下使用vim配合xxd查看并编辑二进制文件

通常来说文件分为文本和二进制文件两大类,文本文件的编辑很容易,Windows下的notepad.UltraEdit都很好用,二进制文件的编辑在Windows下也有很多工具,UltraEdit也不错,但是Linux下呢?今天终于发现了一个好方法,但是最终出处找不到了. 首先创建一个二进制文件: [[email protected] tmp]$ echo -n "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz" > test

linux 命令 xxd

xxd,可以查看linux下文件的二进制表示,man一下xxd,可以得到以下信息 NAME xxd - make a hexdump or do the reverse. SYNOPSIS xxd -h[elp] xxd [options] [infile [outfile]] xxd -r[evert] [options] [infile [outfile]] DESCRIPTION xxd  creates  a hex dump of a given file or standard in

[20171124]xxd与通配符.txt

--//linux 上许多命令都支持通配符,比如$ ls -l *.txt-rw-r--r-- 1 oracle oinstall 44801024 2017-11-24 09:16:38 c01.txt-rw-r--r-- 1 oracle oinstall 44801024 2017-11-24 09:16:43 c02.txt-rw-r--r-- 1 oracle oinstall    60168 2017-11-24 09:18:02 c03.txt--//显示后缀为txt的文件. $