1 2method Base$Inner.<init>(Base):void 3{ 4............................. begin block 1 ............................. 5 0| move-object v0, v4 6 1| move-object v1, v5 7 2| move-object v2, v0 8 3| move-object v3, v1 9 4| iput-object v3, v2, Base$Inner.this$0 10.............................. end block 1 .............................. 11............................. begin block 2 ............................. 12 6| move-object v2, v0 13 7| invoke-direct {v2}, java.lang.Object.<init>():void 14.............................. end block 2 .............................. 15............................. begin block 3 ............................. 16 10| return-void 17.............................. end block 3 .............................. 18} 19 20method Base$Nested.<init>():void 21{ 22............................. begin block 1 ............................. 23 0| move-object v0, v2 24 1| move-object v1, v0 25 2| invoke-direct {v1}, java.lang.Object.<init>():void 26.............................. end block 1 .............................. 27............................. begin block 2 ............................. 28 5| return-void 29.............................. end block 2 .............................. 30} 31 32method Base.<init>():void 33{ 34............................. begin block 1 ............................. 35 0| move-object v0, v2 36 1| move-object v1, v0 37 2| invoke-direct {v1}, java.lang.Object.<init>():void 38.............................. end block 1 .............................. 39............................. begin block 2 ............................. 40 5| return-void 41.............................. end block 2 .............................. 42} 43 44method Base.test(int):void 45{ 46............................. begin block 1 ............................. 47 0| move-object v0, v6 48 1| move v1, v7 49 2| invoke-static {}, Hello.printStackTrace():void 50.............................. end block 1 .............................. 51............................. begin block 2 ............................. 52 5| sget-object v2, java.lang.System.out 53.............................. end block 2 .............................. 54............................. begin block 3 ............................. 55 7| new-instance v3, java.lang.StringBuilder 56.............................. end block 3 .............................. 57............................. begin block 4 ............................. 58 9| move-object v5, v3 59 10| move-object v3, v5 60 11| move-object v4, v5 61 12| invoke-direct {v4}, java.lang.StringBuilder.<init>():void 62.............................. end block 4 .............................. 63............................. begin block 5 ............................. 64 15| const-string v4, "Base.test " 65.............................. end block 5 .............................. 66............................. begin block 6 ............................. 67 17| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder 68.............................. end block 6 .............................. 69............................. begin block 7 ............................. 70 20| move-result-object v3 71 21| move v4, v1 72 22| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder 73.............................. end block 7 .............................. 74............................. begin block 8 ............................. 75 25| move-result-object v3 76 26| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String 77.............................. end block 8 .............................. 78............................. begin block 9 ............................. 79 29| move-result-object v3 80 30| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void 81.............................. end block 9 .............................. 82............................. begin block 10 ............................. 83 33| return-void 84.............................. end block 10 .............................. 85} 86 87method Derived.<init>():void 88{ 89............................. begin block 1 ............................. 90 0| move-object v0, v2 91 1| move-object v1, v0 92 2| invoke-direct {v1}, Base.<init>():void 93.............................. end block 1 .............................. 94............................. begin block 2 ............................. 95 5| return-void 96.............................. end block 2 .............................. 97} 98 99method Derived.test(int):void 100{ 101............................. begin block 1 ............................. 102 0| move-object v0, v6 103 1| move v1, v7 104 2| sget-object v2, java.lang.System.out 105.............................. end block 1 .............................. 106............................. begin block 2 ............................. 107 4| new-instance v3, java.lang.StringBuilder 108.............................. end block 2 .............................. 109............................. begin block 3 ............................. 110 6| move-object v5, v3 111 7| move-object v3, v5 112 8| move-object v4, v5 113 9| invoke-direct {v4}, java.lang.StringBuilder.<init>():void 114.............................. end block 3 .............................. 115............................. begin block 4 ............................. 116 12| const-string v4, "Derived.test " 117.............................. end block 4 .............................. 118............................. begin block 5 ............................. 119 14| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder 120.............................. end block 5 .............................. 121............................. begin block 6 ............................. 122 17| move-result-object v3 123 18| move v4, v1 124 19| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder 125.............................. end block 6 .............................. 126............................. begin block 7 ............................. 127 22| move-result-object v3 128 23| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String 129.............................. end block 7 .............................. 130............................. begin block 8 ............................. 131 26| move-result-object v3 132 27| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void 133.............................. end block 8 .............................. 134............................. begin block 9 ............................. 135 30| return-void 136.............................. end block 9 .............................. 137} 138 139method Hello.<init>():void 140{ 141............................. begin block 1 ............................. 142 0| move-object v0, v2 143 1| move-object v1, v0 144 2| invoke-direct {v1}, java.lang.Object.<init>():void 145.............................. end block 1 .............................. 146............................. begin block 2 ............................. 147 5| return-void 148.............................. end block 2 .............................. 149} 150 151method Hello.main(java.lang.String[]):void 152{ 153............................. begin block 1 ............................. 154 0| move-object v0, v6 155 1| sget-object v2, java.lang.System.out 156.............................. end block 1 .............................. 157............................. begin block 2 ............................. 158 3| const-string v3, "-------------------------------------------------------\n" 159.............................. end block 2 .............................. 160............................. begin block 3 ............................. 161 5| const/4 v4, #+0 (0x00000000 | 0.00000) 162 6| new-array v4, v4, java.lang.Object[] 163.............................. end block 3 .............................. 164............................. begin block 4 ............................. 165 8| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 166.............................. end block 4 .............................. 167............................. begin block 5 ............................. 168 11| move-result-object v2 169 12| sget-object v2, java.lang.System.out 170.............................. end block 5 .............................. 171............................. begin block 6 ............................. 172 14| const-string v3, "Hello, world (original)" 173.............................. end block 6 .............................. 174............................. begin block 7 ............................. 175 16| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void 176.............................. end block 7 .............................. 177............................. begin block 8 ............................. 178 19| sget-object v2, java.lang.System.out 179.............................. end block 8 .............................. 180............................. begin block 9 ............................. 181 21| const-string v3, "-------------------------------------------------------\n" 182.............................. end block 9 .............................. 183............................. begin block 10 ............................. 184 23| const/4 v4, #+0 (0x00000000 | 0.00000) 185 24| new-array v4, v4, java.lang.Object[] 186.............................. end block 10 .............................. 187............................. begin block 11 ............................. 188 26| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 189.............................. end block 11 .............................. 190............................. begin block 12 ............................. 191 29| move-result-object v2 192 30| new-instance v2, Base 193.............................. end block 12 .............................. 194............................. begin block 13 ............................. 195 32| move-object v5, v2 196 33| move-object v2, v5 197 34| move-object v3, v5 198 35| invoke-direct {v3}, Base.<init>():void 199.............................. end block 13 .............................. 200............................. begin block 14 ............................. 201 38| move-object v1, v2 202 39| move-object v2, v1 203 40| const/4 v3, #+1 (0x00000001 | 1.40130e-45) 204 41| invoke-virtual {v2,v3}, Base.test(int):void 205.............................. end block 14 .............................. 206............................. begin block 15 ............................. 207 44| sget-object v2, java.lang.System.out 208.............................. end block 15 .............................. 209............................. begin block 16 ............................. 210 46| const-string v3, "-------------------------------------------------------\n" 211.............................. end block 16 .............................. 212............................. begin block 17 ............................. 213 48| const/4 v4, #+0 (0x00000000 | 0.00000) 214 49| new-array v4, v4, java.lang.Object[] 215.............................. end block 17 .............................. 216............................. begin block 18 ............................. 217 51| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 218.............................. end block 18 .............................. 219............................. begin block 19 ............................. 220 54| move-result-object v2 221 55| new-instance v2, Derived 222.............................. end block 19 .............................. 223............................. begin block 20 ............................. 224 57| move-object v5, v2 225 58| move-object v2, v5 226 59| move-object v3, v5 227 60| invoke-direct {v3}, Derived.<init>():void 228.............................. end block 20 .............................. 229............................. begin block 21 ............................. 230 63| move-object v1, v2 231 64| move-object v2, v1 232 65| const/4 v3, #+2 (0x00000002 | 2.80260e-45) 233 66| invoke-virtual {v2,v3}, Base.test(int):void 234.............................. end block 21 .............................. 235............................. begin block 22 ............................. 236 69| return-void 237.............................. end block 22 .............................. 238} 239 240method Hello.printStackTrace():void 241{ 242............................. begin block 1 ............................. 243 0| new-instance v5, java.lang.Throwable 244.............................. end block 1 .............................. 245............................. begin block 2 ............................. 246 2| move-object v11, v5 247 3| move-object v5, v11 248 4| move-object v6, v11 249 5| invoke-direct {v6}, java.lang.Throwable.<init>():void 250.............................. end block 2 .............................. 251............................. begin block 3 ............................. 252 8| invoke-virtual {v5}, java.lang.Throwable.getStackTrace():java.lang.StackTraceElement[] 253.............................. end block 3 .............................. 254............................. begin block 4 ............................. 255 11| move-result-object v5 256 12| move-object v0, v5 257 13| move-object v5, v0 258 14| move-object v1, v5 259 15| move-object v5, v1 260 16| array-length v5, v5 261.............................. end block 4 .............................. 262............................. begin block 5 ............................. 263 17| move v2, v5 264 18| const/4 v5, #+0 (0x00000000 | 0.00000) 265 19| move v3, v5 266.............................. end block 5 .............................. 267............................. begin block 6 ............................. 268Label_1: 269 20| move v5, v3 270 21| move v6, v2 271 22| if-ge v5, v6, Label_2 272.............................. end block 6 .............................. 273............................. begin block 7 ............................. 274 24| move-object v5, v1 275 25| move v6, v3 276 26| aget-object v5, v5, v6 277.............................. end block 7 .............................. 278............................. begin block 8 ............................. 279 28| move-object v4, v5 280 29| sget-object v5, java.lang.System.out 281.............................. end block 8 .............................. 282............................. begin block 9 ............................. 283 31| const-string v6, " %s\n" 284.............................. end block 9 .............................. 285............................. begin block 10 ............................. 286 33| const/4 v7, #+1 (0x00000001 | 1.40130e-45) 287 34| new-array v7, v7, java.lang.Object[] 288.............................. end block 10 .............................. 289............................. begin block 11 ............................. 290 36| move-object v11, v7 291 37| move-object v7, v11 292 38| move-object v8, v11 293 39| const/4 v9, #+0 (0x00000000 | 0.00000) 294 40| move-object v10, v4 295 41| invoke-virtual {v10}, java.lang.StackTraceElement.toString():java.lang.String 296.............................. end block 11 .............................. 297............................. begin block 12 ............................. 298 44| move-result-object v10 299 45| aput-object v10, v8, v9 300.............................. end block 12 .............................. 301............................. begin block 13 ............................. 302 47| invoke-virtual {v5,v6,v7}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 303.............................. end block 13 .............................. 304............................. begin block 14 ............................. 305 50| move-result-object v5 306 51| add-int/lit8 v3, v3, #+1 (0x00000001 | 1.40130e-45) 307 53| goto Label_1 308.............................. end block 14 .............................. 309............................. begin block 15 ............................. 310Label_2: 311 54| return-void 312.............................. end block 15 .............................. 313} 314