upload android base code part3

This commit is contained in:
August 2018-08-08 16:48:17 +08:00
parent 71b83c22f1
commit b9e30e05b1
15122 changed files with 2089659 additions and 0 deletions

View file

@ -0,0 +1,51 @@
reading small-class.txt...
begin classfile
magic: cafebabe
minor_version: 0000
major_version: 002e
constant_pool_count: 000c
constant_pool:
0001: type{Small}
0002: type{java.lang.Object}
0003: utf8{"Small"}
0004: utf8{"java/lang/Object"}
0005: utf8{"blort"}
0006: utf8{"()V"}
0007: utf8{"Code"}
0008: utf8{"java/lang/Error"}
0009: utf8{"java/lang/Exception"}
000a: type{java.lang.Error}
000b: type{java.lang.Exception}
end constant_pool
access_flags: public
this_class: type{Small}
super_class: type{java.lang.Object}
interfaces_count: 0000
fields_count: 0000
methods_count: 0001
methods[0]:
access_flags: public
name: blort
descriptor: ()V
attributes_count: 0001
attributes[0]:
name: Code
length: 00000027
max_stack: 0001
max_locals: 0001
code_length: 00000003
0000: return
0001: return
0002: return
exception_table_length: 0003
0000..0002 -> 0002 java.lang.Error
0000..0001 -> 0001 java.lang.Exception
0001..0002 -> 0002 <any>
attributes_count: 0000
end attributes[0]
end methods[0]
attributes_count: 0000
end classfile

View file

@ -0,0 +1,7 @@
This is a dump of a simple class which is valid in structure but is overall
invalid. That being said, the system should still have no trouble parsing and
dumping it.
The salient bit of parsing tested here is that the class has a single
method with a minimal but syntactically valid Code attribute, which
sports a non-empty syntactically valid exception table.

View file

@ -0,0 +1,17 @@
#!/bin/bash
#
# Copyright (C) 2007 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
dx --debug --dump small-class.txt

View file

@ -0,0 +1,52 @@
#
# sample small-but-valid classfile
#
cafe babe # magic
0000 # minor_version
002e # major_version
000c # constant_pool_count
#
# constant_pool
#
07 0003 # 0001: class[Small]
07 0004 # 0002: class[java/lang/Object]
01 0005 "Small" # 0003: utf8["Small"]
01 0010 "java/lang/Object" # 0004: utf8["java/lang/Object"]
01 0005 "blort" # 0005: utf8["blort"]
01 0003 "()V" # 0006: utf8["()V"]
01 0004 "Code" # 0007: utf8["Code"]
01 000f "java/lang/Error" # 0008: utf8["java/lang/Error"]
01 0013 "java/lang/Exception" # 0009: utf8["java/lang/Exception"]
07 0008 # 000a: class[java/lang/Error]
07 0009 # 000b: class[java/lang/Exception]
0001 # access_flags
0001 # this_class
0002 # super_class
0000 # interfaces_count
0000 # fields_count
0001 # methods_count
# methods[0]
0001 # access_flags
0005 # name
0006 # descriptor
0001 # attributes_count
# attributes[0]
0007 # name
00000027 # length
0001 # max_stack
0001 # max_locals
00000003 # code_length
b1 # 0000: return
b1 # 0001: return
b1 # 0002: return
0003 # exception_table_length
0000 0002 0002 000a # 0000..0002 -> 0002 java/lang/Error
0000 0001 0001 000b # 0000..0001 -> 0001 java/lang/Exception
0001 0002 0002 0000 # 0001..0002 -> 0002 <any>
0000 # attributes_count
0000 # attributes_count