1 /* 2 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 /* 25 * This class consists of the following java code, but has an illegal class 26 * access_flags value of 0x8000, that should be ignored by the JVM. 27 * 28 * public class acc_module { 29 * public static void main(String[] args) { 30 * System.out.println("hello"); 31 * } 32 * } 33 */ 34 class acc_module { 35 0xCAFEBABE; 36 0; // minor version 37 52; // version 38 [29] { // Constant Pool 39 ; // first element is empty 40 Method #6 #15; // #1 at 0x0A 41 Field #16 #17; // #2 at 0x0F 42 String #18; // #3 at 0x14 43 Method #19 #20; // #4 at 0x17 44 class #21; // #5 at 0x1C 45 class #22; // #6 at 0x1F 46 Utf8 "<init>"; // #7 at 0x22 47 Utf8 "()V"; // #8 at 0x2B 48 Utf8 "Code"; // #9 at 0x31 49 Utf8 "LineNumberTable"; // #10 at 0x38 50 Utf8 "main"; // #11 at 0x4A 51 Utf8 "([Ljava/lang/String;)V"; // #12 at 0x51 52 Utf8 "SourceFile"; // #13 at 0x6A 53 Utf8 "acc_module.java"; // #14 at 0x77 54 NameAndType #7 #8; // #15 at 0x89 55 class #23; // #16 at 0x8E 56 NameAndType #24 #25; // #17 at 0x91 57 Utf8 "hello"; // #18 at 0x96 58 class #26; // #19 at 0x9E 59 NameAndType #27 #28; // #20 at 0xA1 60 Utf8 "acc_module"; // #21 at 0xA6 61 Utf8 "java/lang/Object"; // #22 at 0xB3 62 Utf8 "java/lang/System"; // #23 at 0xC6 63 Utf8 "out"; // #24 at 0xD9 64 Utf8 "Ljava/io/PrintStream;"; // #25 at 0xDF 65 Utf8 "java/io/PrintStream"; // #26 at 0xF7 66 Utf8 "println"; // #27 at 0x010D 67 Utf8 "(Ljava/lang/String;)V"; // #28 at 0x0117 68 } // Constant Pool 69 70 0x8000; // access 71 #5;// this_cpx 72 #6;// super_cpx 73 74 [0] { // Interfaces 75 } // Interfaces 76 77 [0] { // fields 78 } // fields 79 80 [2] { // methods 81 { // Member at 0x013B 82 0x0001; // access 83 #7; // name_cpx 84 #8; // sig_cpx 85 [1] { // Attributes 86 Attr(#9, 29) { // Code at 0x0143 87 1; // max_stack 88 1; // max_locals 89 Bytes[5]{ 90 0x2AB70001B1; 91 }; 92 [0] { // Traps 93 } // end Traps 94 [1] { // Attributes 95 Attr(#10, 6) { // LineNumberTable at 0x015A 96 [1] { // LineNumberTable 97 0 1; // at 0x0166 98 } 99 } // end LineNumberTable 100 } // Attributes 101 } // end Code 102 } // Attributes 103 } // Member 104 ; 105 { // Member at 0x0166 106 0x0009; // access 107 #11; // name_cpx 108 #12; // sig_cpx 109 [1] { // Attributes 110 Attr(#9, 37) { // Code at 0x016E 111 2; // max_stack 112 1; // max_locals 113 Bytes[9]{ 114 0xB200021203B60004; 115 0xB1; 116 }; 117 [0] { // Traps 118 } // end Traps 119 [1] { // Attributes 120 Attr(#10, 10) { // LineNumberTable at 0x0189 121 [2] { // LineNumberTable 122 0 3; // at 0x0195 123 8 4; // at 0x0199 124 } 125 } // end LineNumberTable 126 } // Attributes 127 } // end Code 128 } // Attributes 129 } // Member 130 } // methods 131 132 [1] { // Attributes 133 Attr(#13, 2) { // SourceFile at 0x019B 134 #14; 135 } // end SourceFile 136 } // Attributes 137 } // end class acc_module