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