1 2method Base$Inner.<init>(Base):void 3{ 4 0| move-object/16 v14, v27 5 3| move-object/16 v15, v28 6 6| move-object/16 v13, v14 7 9| move-object/16 v14, v15 8 12| move-object/16 v12, v13 9 15| move-object/16 v13, v14 10 18| move-object v8, v12 11 19| move-object v9, v13 12 20| move-object v10, v8 13 21| move-object v11, v9 14 22| iput-object v11, v10, Base$Inner.this$0 15 24| move-object v10, v8 16 25| invoke-direct {v10}, java.lang.Object.<init>():void 17 28| return-void 18} 19 20method Base$Nested.<init>():void 21{ 22 0| move-object/16 v15, v25 23 3| move-object/16 v14, v15 24 6| move-object/16 v13, v14 25 9| move-object v11, v13 26 10| move-object v12, v11 27 11| invoke-direct {v12}, java.lang.Object.<init>():void 28 14| return-void 29} 30 31method Base.<init>():void 32{ 33 0| move-object/16 v15, v25 34 3| move-object/16 v14, v15 35 6| move-object/16 v13, v14 36 9| move-object v11, v13 37 10| move-object v12, v11 38 11| invoke-direct {v12}, java.lang.Object.<init>():void 39 14| return-void 40} 41 42method Base.test(int):void 43{ 44 0| move-object/16 v14, v29 45 3| move/16 v15, v30 46 6| move-object/16 v13, v14 47 9| move/16 v14, v15 48 12| move-object/16 v12, v13 49 15| move/16 v13, v14 50 18| move-object v6, v12 51 19| move v7, v13 52 20| invoke-static {}, Hello.printStackTrace():void 53 23| sget-object v8, java.lang.System.out 54 25| new-instance v9, java.lang.StringBuilder 55 27| move-object v11, v9 56 28| move-object v9, v11 57 29| move-object v10, v11 58 30| invoke-direct {v10}, java.lang.StringBuilder.<init>():void 59 33| const-string v10, "Base.test " 60 35| invoke-virtual {v9,v10}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder 61 38| move-result-object v9 62 39| move v10, v7 63 40| invoke-virtual {v9,v10}, java.lang.StringBuilder.append(int):java.lang.StringBuilder 64 43| move-result-object v9 65 44| invoke-virtual {v9}, java.lang.StringBuilder.toString():java.lang.String 66 47| move-result-object v9 67 48| invoke-virtual {v8,v9}, java.io.PrintStream.println(java.lang.String):void 68 51| return-void 69} 70 71method Derived.<init>():void 72{ 73 0| move-object/16 v15, v25 74 3| move-object/16 v14, v15 75 6| move-object/16 v13, v14 76 9| move-object v11, v13 77 10| move-object v12, v11 78 11| invoke-direct {v12}, Base.<init>():void 79 14| return-void 80} 81 82method Derived.test(int):void 83{ 84 0| move-object/16 v14, v29 85 3| move/16 v15, v30 86 6| move-object/16 v13, v14 87 9| move/16 v14, v15 88 12| move-object/16 v12, v13 89 15| move/16 v13, v14 90 18| move-object v6, v12 91 19| move v7, v13 92 20| sget-object v8, java.lang.System.out 93 22| new-instance v9, java.lang.StringBuilder 94 24| move-object v11, v9 95 25| move-object v9, v11 96 26| move-object v10, v11 97 27| invoke-direct {v10}, java.lang.StringBuilder.<init>():void 98 30| const-string v10, "Derived.test " 99 32| invoke-virtual {v9,v10}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder 100 35| move-result-object v9 101 36| move v10, v7 102 37| invoke-virtual {v9,v10}, java.lang.StringBuilder.append(int):java.lang.StringBuilder 103 40| move-result-object v9 104 41| invoke-virtual {v9}, java.lang.StringBuilder.toString():java.lang.String 105 44| move-result-object v9 106 45| invoke-virtual {v8,v9}, java.io.PrintStream.println(java.lang.String):void 107 48| return-void 108} 109 110method Hello.<init>():void 111{ 112 0| move-object/16 v15, v25 113 3| move-object/16 v14, v15 114 6| move-object/16 v13, v14 115 9| move-object v11, v13 116 10| move-object v12, v11 117 11| invoke-direct {v12}, java.lang.Object.<init>():void 118 14| return-void 119} 120 121method Hello.main(java.lang.String[]):void 122{ 123 0| move-object/16 v15, v29 124 3| move-object/16 v14, v15 125 6| move-object/16 v13, v14 126 9| move-object v7, v13 127 10| sget-object v9, java.lang.System.out 128 12| const-string v10, "-------------------------------------------------------\n" 129 14| const/4 v11, #+0 (0x00000000 | 0.00000) 130 15| new-array v11, v11, java.lang.Object[] 131 17| invoke-virtual {v9,v10,v11}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 132 20| move-result-object v9 133 21| sget-object v9, java.lang.System.out 134 23| const-string v10, "Hello, world (original)" 135 25| invoke-virtual {v9,v10}, java.io.PrintStream.println(java.lang.String):void 136 28| sget-object v9, java.lang.System.out 137 30| const-string v10, "-------------------------------------------------------\n" 138 32| const/4 v11, #+0 (0x00000000 | 0.00000) 139 33| new-array v11, v11, java.lang.Object[] 140 35| invoke-virtual {v9,v10,v11}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 141 38| move-result-object v9 142 39| new-instance v9, Base 143 41| move-object v12, v9 144 42| move-object v9, v12 145 43| move-object v10, v12 146 44| invoke-direct {v10}, Base.<init>():void 147 47| move-object v8, v9 148 48| move-object v9, v8 149 49| const/4 v10, #+1 (0x00000001 | 1.40130e-45) 150 50| invoke-virtual {v9,v10}, Base.test(int):void 151 53| sget-object v9, java.lang.System.out 152 55| const-string v10, "-------------------------------------------------------\n" 153 57| const/4 v11, #+0 (0x00000000 | 0.00000) 154 58| new-array v11, v11, java.lang.Object[] 155 60| invoke-virtual {v9,v10,v11}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 156 63| move-result-object v9 157 64| new-instance v9, Derived 158 66| move-object v12, v9 159 67| move-object v9, v12 160 68| move-object v10, v12 161 69| invoke-direct {v10}, Derived.<init>():void 162 72| move-object v8, v9 163 73| move-object v9, v8 164 74| const/4 v10, #+2 (0x00000002 | 2.80260e-45) 165 75| invoke-virtual {v9,v10}, Base.test(int):void 166 78| return-void 167} 168 169method Hello.printStackTrace():void 170{ 171 0| new-instance v5, java.lang.Throwable 172 2| move-object v11, v5 173 3| move-object v5, v11 174 4| move-object v6, v11 175 5| invoke-direct {v6}, java.lang.Throwable.<init>():void 176 8| invoke-virtual {v5}, java.lang.Throwable.getStackTrace():java.lang.StackTraceElement[] 177 11| move-result-object v5 178 12| move-object v0, v5 179 13| move-object v5, v0 180 14| move-object v1, v5 181 15| move-object v5, v1 182 16| array-length v5, v5 183 17| move v2, v5 184 18| const/4 v5, #+0 (0x00000000 | 0.00000) 185 19| move v3, v5 186Label_1: 187 20| move v5, v3 188 21| move v6, v2 189 22| if-ge v5, v6, Label_2 190 24| move-object v5, v1 191 25| move v6, v3 192 26| aget-object v5, v5, v6 193 28| move-object v4, v5 194 29| sget-object v5, java.lang.System.out 195 31| const-string v6, " %s\n" 196 33| const/4 v7, #+1 (0x00000001 | 1.40130e-45) 197 34| new-array v7, v7, java.lang.Object[] 198 36| move-object v11, v7 199 37| move-object v7, v11 200 38| move-object v8, v11 201 39| const/4 v9, #+0 (0x00000000 | 0.00000) 202 40| move-object v10, v4 203 41| invoke-virtual {v10}, java.lang.StackTraceElement.toString():java.lang.String 204 44| move-result-object v10 205 45| aput-object v10, v8, v9 206 47| invoke-virtual {v5,v6,v7}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 207 50| move-result-object v5 208 51| add-int/lit8 v3, v3, #+1 (0x00000001 | 1.40130e-45) 209 53| goto/16 Label_1 210Label_2: 211 55| return-void 212} 213