method Base$Inner.(Base):void { ............................. begin block 1 ............................. 0| move-object v0, v4 1| move-object v1, v5 2| move-object v2, v0 3| move-object v3, v1 4| iput-object v3, v2, Base$Inner.this$0 .............................. end block 1 .............................. ............................. begin block 2 ............................. 6| move-object v2, v0 7| invoke-direct {v2}, java.lang.Object.():void .............................. end block 2 .............................. ............................. begin block 3 ............................. 10| return-void .............................. end block 3 .............................. } method Base$Nested.():void { ............................. begin block 1 ............................. 0| move-object v0, v2 1| move-object v1, v0 2| invoke-direct {v1}, java.lang.Object.():void .............................. end block 1 .............................. ............................. begin block 2 ............................. 5| return-void .............................. end block 2 .............................. } method Base.():void { ............................. begin block 1 ............................. 0| move-object v0, v2 1| move-object v1, v0 2| invoke-direct {v1}, java.lang.Object.():void .............................. end block 1 .............................. ............................. begin block 2 ............................. 5| return-void .............................. end block 2 .............................. } method Base.test(int):void { ............................. begin block 1 ............................. 0| move-object v0, v6 1| move v1, v7 2| invoke-static {}, Hello.printStackTrace():void .............................. end block 1 .............................. ............................. begin block 2 ............................. 5| sget-object v2, java.lang.System.out .............................. end block 2 .............................. ............................. begin block 3 ............................. 7| new-instance v3, java.lang.StringBuilder .............................. end block 3 .............................. ............................. begin block 4 ............................. 9| move-object v5, v3 10| move-object v3, v5 11| move-object v4, v5 12| invoke-direct {v4}, java.lang.StringBuilder.():void .............................. end block 4 .............................. ............................. begin block 5 ............................. 15| const-string v4, "Base.test " .............................. end block 5 .............................. ............................. begin block 6 ............................. 17| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder .............................. end block 6 .............................. ............................. begin block 7 ............................. 20| move-result-object v3 21| move v4, v1 22| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder .............................. end block 7 .............................. ............................. begin block 8 ............................. 25| move-result-object v3 26| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String .............................. end block 8 .............................. ............................. begin block 9 ............................. 29| move-result-object v3 30| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void .............................. end block 9 .............................. ............................. begin block 10 ............................. 33| return-void .............................. end block 10 .............................. } method Derived.():void { ............................. begin block 1 ............................. 0| move-object v0, v2 1| move-object v1, v0 2| invoke-direct {v1}, Base.():void .............................. end block 1 .............................. ............................. begin block 2 ............................. 5| return-void .............................. end block 2 .............................. } method Derived.test(int):void { ............................. begin block 1 ............................. 0| move-object v0, v6 1| move v1, v7 2| sget-object v2, java.lang.System.out .............................. end block 1 .............................. ............................. begin block 2 ............................. 4| new-instance v3, java.lang.StringBuilder .............................. end block 2 .............................. ............................. begin block 3 ............................. 6| move-object v5, v3 7| move-object v3, v5 8| move-object v4, v5 9| invoke-direct {v4}, java.lang.StringBuilder.():void .............................. end block 3 .............................. ............................. begin block 4 ............................. 12| const-string v4, "Derived.test " .............................. end block 4 .............................. ............................. begin block 5 ............................. 14| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder .............................. end block 5 .............................. ............................. begin block 6 ............................. 17| move-result-object v3 18| move v4, v1 19| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder .............................. end block 6 .............................. ............................. begin block 7 ............................. 22| move-result-object v3 23| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String .............................. end block 7 .............................. ............................. begin block 8 ............................. 26| move-result-object v3 27| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void .............................. end block 8 .............................. ............................. begin block 9 ............................. 30| return-void .............................. end block 9 .............................. } method Hello.():void { ............................. begin block 1 ............................. 0| move-object v0, v2 1| move-object v1, v0 2| invoke-direct {v1}, java.lang.Object.():void .............................. end block 1 .............................. ............................. begin block 2 ............................. 5| return-void .............................. end block 2 .............................. } method Hello.main(java.lang.String[]):void { ............................. begin block 1 ............................. 0| move-object v0, v6 1| sget-object v2, java.lang.System.out .............................. end block 1 .............................. ............................. begin block 2 ............................. 3| const-string v3, "-------------------------------------------------------\n" .............................. end block 2 .............................. ............................. begin block 3 ............................. 5| const/4 v4, #+0 (0x00000000 | 0.00000) 6| new-array v4, v4, java.lang.Object[] .............................. end block 3 .............................. ............................. begin block 4 ............................. 8| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream .............................. end block 4 .............................. ............................. begin block 5 ............................. 11| move-result-object v2 12| sget-object v2, java.lang.System.out .............................. end block 5 .............................. ............................. begin block 6 ............................. 14| const-string v3, "Hello, world (original)" .............................. end block 6 .............................. ............................. begin block 7 ............................. 16| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void .............................. end block 7 .............................. ............................. begin block 8 ............................. 19| sget-object v2, java.lang.System.out .............................. end block 8 .............................. ............................. begin block 9 ............................. 21| const-string v3, "-------------------------------------------------------\n" .............................. end block 9 .............................. ............................. begin block 10 ............................. 23| const/4 v4, #+0 (0x00000000 | 0.00000) 24| new-array v4, v4, java.lang.Object[] .............................. end block 10 .............................. ............................. begin block 11 ............................. 26| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream .............................. end block 11 .............................. ............................. begin block 12 ............................. 29| move-result-object v2 30| new-instance v2, Base .............................. end block 12 .............................. ............................. begin block 13 ............................. 32| move-object v5, v2 33| move-object v2, v5 34| move-object v3, v5 35| invoke-direct {v3}, Base.():void .............................. end block 13 .............................. ............................. begin block 14 ............................. 38| move-object v1, v2 39| move-object v2, v1 40| const/4 v3, #+1 (0x00000001 | 1.40130e-45) 41| invoke-virtual {v2,v3}, Base.test(int):void .............................. end block 14 .............................. ............................. begin block 15 ............................. 44| sget-object v2, java.lang.System.out .............................. end block 15 .............................. ............................. begin block 16 ............................. 46| const-string v3, "-------------------------------------------------------\n" .............................. end block 16 .............................. ............................. begin block 17 ............................. 48| const/4 v4, #+0 (0x00000000 | 0.00000) 49| new-array v4, v4, java.lang.Object[] .............................. end block 17 .............................. ............................. begin block 18 ............................. 51| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream .............................. end block 18 .............................. ............................. begin block 19 ............................. 54| move-result-object v2 55| new-instance v2, Derived .............................. end block 19 .............................. ............................. begin block 20 ............................. 57| move-object v5, v2 58| move-object v2, v5 59| move-object v3, v5 60| invoke-direct {v3}, Derived.():void .............................. end block 20 .............................. ............................. begin block 21 ............................. 63| move-object v1, v2 64| move-object v2, v1 65| const/4 v3, #+2 (0x00000002 | 2.80260e-45) 66| invoke-virtual {v2,v3}, Base.test(int):void .............................. end block 21 .............................. ............................. begin block 22 ............................. 69| return-void .............................. end block 22 .............................. } method Hello.printStackTrace():void { ............................. begin block 1 ............................. 0| new-instance v5, java.lang.Throwable .............................. end block 1 .............................. ............................. begin block 2 ............................. 2| move-object v11, v5 3| move-object v5, v11 4| move-object v6, v11 5| invoke-direct {v6}, java.lang.Throwable.():void .............................. end block 2 .............................. ............................. begin block 3 ............................. 8| invoke-virtual {v5}, java.lang.Throwable.getStackTrace():java.lang.StackTraceElement[] .............................. end block 3 .............................. ............................. begin block 4 ............................. 11| move-result-object v5 12| move-object v0, v5 13| move-object v5, v0 14| move-object v1, v5 15| move-object v5, v1 16| array-length v5, v5 .............................. end block 4 .............................. ............................. begin block 5 ............................. 17| move v2, v5 18| const/4 v5, #+0 (0x00000000 | 0.00000) 19| move v3, v5 .............................. end block 5 .............................. ............................. begin block 6 ............................. Label_1: 20| move v5, v3 21| move v6, v2 22| if-ge v5, v6, Label_2 .............................. end block 6 .............................. ............................. begin block 7 ............................. 24| move-object v5, v1 25| move v6, v3 26| aget-object v5, v5, v6 .............................. end block 7 .............................. ............................. begin block 8 ............................. 28| move-object v4, v5 29| sget-object v5, java.lang.System.out .............................. end block 8 .............................. ............................. begin block 9 ............................. 31| const-string v6, " %s\n" .............................. end block 9 .............................. ............................. begin block 10 ............................. 33| const/4 v7, #+1 (0x00000001 | 1.40130e-45) 34| new-array v7, v7, java.lang.Object[] .............................. end block 10 .............................. ............................. begin block 11 ............................. 36| move-object v11, v7 37| move-object v7, v11 38| move-object v8, v11 39| const/4 v9, #+0 (0x00000000 | 0.00000) 40| move-object v10, v4 41| invoke-virtual {v10}, java.lang.StackTraceElement.toString():java.lang.String .............................. end block 11 .............................. ............................. begin block 12 ............................. 44| move-result-object v10 45| aput-object v10, v8, v9 .............................. end block 12 .............................. ............................. begin block 13 ............................. 47| invoke-virtual {v5,v6,v7}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream .............................. end block 13 .............................. ............................. begin block 14 ............................. 50| move-result-object v5 51| add-int/lit8 v3, v3, #+1 (0x00000001 | 1.40130e-45) 53| goto Label_1 .............................. end block 14 .............................. ............................. begin block 15 ............................. Label_2: 54| return-void .............................. end block 15 .............................. }