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