Home | History | Annotate | Download | only in expected
      1 
      2 method Base.<init>():void
      3 {
      4 	.src "entryHooks.java"
      5 	.line 27
      6 	.prologue_end
      7 	.line 27
      8 	    0| move-object v0, v2
      9 	.local v0, "this", Base
     10 	    1| move-object v1, v0
     11 	    2| invoke-direct {v1}, java.lang.Object.<init>():void
     12 	    5| return-void
     13 }
     14 
     15 method Base.foo(int, java.lang.String):int
     16 {
     17 	.params "?", "?"
     18 	.src "entryHooks.java"
     19 	.line 31
     20 	.prologue_end
     21 	.line 31
     22 	    0| move-object v0, v10
     23 	.local v0, "this", Base
     24 	    1| move v1, v11
     25 	.local v1, "x", int
     26 	    2| move-object v2, v12
     27 	.local v2, "msg", java.lang.String
     28 	    3| sget-object v3, java.lang.System.out
     29 	    5| const-string v4, "Base.foo(%d, '%s')\n"
     30 	    7| const/4 v5, #+2 (0x00000002 | 2.80260e-45)
     31 	    8| new-array v5, v5, java.lang.Object[]
     32 	   10| move-object v9, v5
     33 	   11| move-object v5, v9
     34 	   12| move-object v6, v9
     35 	   13| const/4 v7, #+0 (0x00000000 | 0.00000)
     36 	   14| move v8, v1
     37 	   15| invoke-static {v8}, java.lang.Integer.valueOf(int):java.lang.Integer
     38 	   18| move-result-object v8
     39 	   19| aput-object v8, v6, v7
     40 	   21| move-object v9, v5
     41 	   22| move-object v5, v9
     42 	   23| move-object v6, v9
     43 	   24| const/4 v7, #+1 (0x00000001 | 1.40130e-45)
     44 	   25| move-object v8, v2
     45 	   26| aput-object v8, v6, v7
     46 	   28| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
     47 	   31| move-result-object v3
     48 	.line 32
     49 	   32| move v3, v1
     50 	   33| move v0, v3
     51 	.end_local v0
     52 	   34| return v0
     53 }
     54 
     55 method Derived.<init>():void
     56 {
     57 	.src "entryHooks.java"
     58 	.line 36
     59 	.prologue_end
     60 	.line 36
     61 	    0| move-object v0, v2
     62 	.local v0, "this", Derived
     63 	    1| move-object v1, v0
     64 	    2| invoke-direct {v1}, Base.<init>():void
     65 	    5| return-void
     66 }
     67 
     68 method Derived.foo(int, java.lang.String):int
     69 {
     70 	.params "?", "?"
     71 	.src "entryHooks.java"
     72 	.line 40
     73 	.prologue_end
     74 	.line 40
     75 	    0| move-object v0, v10
     76 	.local v0, "this", Derived
     77 	    1| move v1, v11
     78 	.local v1, "x", int
     79 	    2| move-object v2, v12
     80 	.local v2, "msg", java.lang.String
     81 	    3| sget-object v3, java.lang.System.out
     82 	    5| const-string v4, "Derived.foo(%d, '%s')\n"
     83 	    7| const/4 v5, #+2 (0x00000002 | 2.80260e-45)
     84 	    8| new-array v5, v5, java.lang.Object[]
     85 	   10| move-object v9, v5
     86 	   11| move-object v5, v9
     87 	   12| move-object v6, v9
     88 	   13| const/4 v7, #+0 (0x00000000 | 0.00000)
     89 	   14| move v8, v1
     90 	   15| invoke-static {v8}, java.lang.Integer.valueOf(int):java.lang.Integer
     91 	   18| move-result-object v8
     92 	   19| aput-object v8, v6, v7
     93 	   21| move-object v9, v5
     94 	   22| move-object v5, v9
     95 	   23| move-object v6, v9
     96 	   24| const/4 v7, #+1 (0x00000001 | 1.40130e-45)
     97 	   25| move-object v8, v2
     98 	   26| aput-object v8, v6, v7
     99 	   28| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    100 	   31| move-result-object v3
    101 	.line 41
    102 	   32| move v3, v1
    103 	   33| const/4 v4, #+2 (0x00000002 | 2.80260e-45)
    104 	   34| mul-int/lit8 v3, v3, #+2 (0x00000002 | 2.80260e-45)
    105 	   36| move v0, v3
    106 	.end_local v0
    107 	   37| return v0
    108 }
    109 
    110 method Target.<init>():void
    111 {
    112 	.src "entryHooks.java"
    113 	.line 45
    114 	.prologue_end
    115 	.line 45
    116 	    0| move-object v0, v2
    117 	.local v0, "this", Target
    118 	    1| move-object v1, v0
    119 	    2| invoke-direct {v1}, java.lang.Object.<init>():void
    120 	    5| return-void
    121 }
    122 
    123 method Target.main(java.lang.String[]):void
    124 {
    125 	.params "?"
    126 	.src "entryHooks.java"
    127 	.line 51
    128 	.prologue_end
    129 	.line 51
    130 	    0| move-object v0, v8
    131 	.local v0, "args", java.lang.String[]
    132 	    1| sget-object v1, java.lang.System.out
    133 	    3| const-string v2, "Hello, world!"
    134 	    5| invoke-virtual {v1,v2}, java.io.PrintStream.println(java.lang.String):void
    135 	.line 52
    136 	    8| sget-object v1, java.lang.System.out
    137 	   10| const-string v2, "final = %d\n"
    138 	   12| const/4 v3, #+1 (0x00000001 | 1.40130e-45)
    139 	   13| new-array v3, v3, java.lang.Object[]
    140 	   15| move-object v7, v3
    141 	   16| move-object v3, v7
    142 	   17| move-object v4, v7
    143 	   18| const/4 v5, #+0 (0x00000000 | 0.00000)
    144 	   19| invoke-static {}, Target.test():int
    145 	   22| move-result v6
    146 	   23| invoke-static {v6}, java.lang.Integer.valueOf(int):java.lang.Integer
    147 	   26| move-result-object v6
    148 	   27| aput-object v6, v4, v5
    149 	   29| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    150 	   32| move-result-object v1
    151 	.line 53
    152 	   33| sget-object v1, java.lang.System.out
    153 	   35| const-string v2, "Good bye!"
    154 	   37| invoke-virtual {v1,v2}, java.io.PrintStream.println(java.lang.String):void
    155 	.line 54
    156 	   40| return-void
    157 }
    158 
    159 method Target.test():int
    160 {
    161 	.src "entryHooks.java"
    162 	.line 58
    163 	.prologue_end
    164 	.line 58
    165 	    0| new-instance v1, Target
    166 	    2| move-object v4, v1
    167 	    3| move-object v1, v4
    168 	    4| move-object v2, v4
    169 	    5| invoke-direct {v2}, Target.<init>():void
    170 	    8| move-object v0, v1
    171 	.line 59
    172 	.local v0, "obj", Target
    173 	    9| move-object v1, v0
    174 	   10| new-instance v2, Derived
    175 	   12| move-object v4, v2
    176 	   13| move-object v2, v4
    177 	   14| move-object v3, v4
    178 	   15| invoke-direct {v3}, Derived.<init>():void
    179 	   18| iput-object v2, v1, Target.test
    180 	.line 60
    181 	   20| move-object v1, v0
    182 	   21| const/4 v2, #+3 (0x00000003 | 4.20390e-45)
    183 	   22| const-string v3, "Testing..."
    184 	   24| invoke-virtual {v1,v2,v3}, Target.foo(int, java.lang.String):int
    185 	   27| move-result v1
    186 	   28| move v0, v1
    187 	.end_local v0
    188 	   29| return v0
    189 }
    190 
    191 method Target.foo(int):int
    192 {
    193 	.params "?"
    194 	.src "entryHooks.java"
    195 	.line 74
    196 	.prologue_end
    197 	.line 74
    198 	    0| move-object v0, v3
    199 	.local v0, "this", Target
    200 	    1| move v1, v4
    201 	.local v1, "x", int
    202 	    2| const/4 v2, #+1 (0x00000001 | 1.40130e-45)
    203 	    3| move v0, v2
    204 	.end_local v0
    205 	    4| return v0
    206 }
    207 
    208 method Target.foo(int, int):int
    209 {
    210 	.params "?", "?"
    211 	.src "entryHooks.java"
    212 	.line 75
    213 	.prologue_end
    214 	.line 75
    215 	    0| move-object v0, v4
    216 	.local v0, "this", Target
    217 	    1| move v1, v5
    218 	.local v1, "x", int
    219 	    2| move v2, v6
    220 	.local v2, "y", int
    221 	    3| const/4 v3, #+2 (0x00000002 | 2.80260e-45)
    222 	    4| move v0, v3
    223 	.end_local v0
    224 	    5| return v0
    225 }
    226 
    227 method Target.foo(int, java.lang.String):int
    228 {
    229 	.params "?", "?"
    230 	.src "entryHooks.java"
    231 	.line 65
    232 	.prologue_end
    233 	.line 65
    234 	    0| move-object v0, v9
    235 	.local v0, "this", Target
    236 	    1| move v1, v10
    237 	.local v1, "x", int
    238 	    2| move-object v2, v11
    239 	.local v2, "msg", java.lang.String
    240 	    3| const/4 v5, #+0 (0x00000000 | 0.00000)
    241 	    4| move v3, v5
    242 	.line 66
    243 	.local v3, "sum", int
    244 	    5| const/4 v5, #+0 (0x00000000 | 0.00000)
    245 	    6| move v4, v5
    246 Label_1:
    247 	.local v4, "i", int
    248 	    7| move v5, v4
    249 	    8| move v6, v1
    250 	    9| if-ge v5, v6, Label_2
    251 	.line 68
    252 	   11| move v5, v3
    253 	   12| move-object v6, v0
    254 	   13| iget-object v6, v6, Target.test
    255 	   15| move v7, v4
    256 	   16| move-object v8, v2
    257 	   17| invoke-virtual {v6,v7,v8}, Base.foo(int, java.lang.String):int
    258 	   20| move-result v6
    259 	   21| add-int/2addr v5, v6
    260 	   22| move v3, v5
    261 	.line 66
    262 	   23| add-int/lit8 v4, v4, #+1 (0x00000001 | 1.40130e-45)
    263 	   25| goto/16 Label_1
    264 Label_2:
    265 	.line 70
    266 	   27| move v5, v3
    267 	   28| move v0, v5
    268 	.end_local v0
    269 	   29| return v0
    270 }
    271 
    272 method Target.foo(int, java.lang.String, java.lang.String):int
    273 {
    274 	.params "?", "?", "?"
    275 	.src "entryHooks.java"
    276 	.line 76
    277 	.prologue_end
    278 	.line 76
    279 	    0| move-object v0, v5
    280 	.local v0, "this", Target
    281 	    1| move v1, v6
    282 	.local v1, "x", int
    283 	    2| move-object v2, v7
    284 	.local v2, "msg", java.lang.String
    285 	    3| move-object v3, v8
    286 	.local v3, "msg2", java.lang.String
    287 	    4| const/4 v4, #+3 (0x00000003 | 4.20390e-45)
    288 	    5| move v0, v4
    289 	.end_local v0
    290 	    6| return v0
    291 }
    292 
    293 method Target.foo(int, java.lang.String[]):int
    294 {
    295 	.params "?", "?"
    296 	.src "entryHooks.java"
    297 	.line 77
    298 	.prologue_end
    299 	.line 77
    300 	    0| move-object v0, v4
    301 	.local v0, "this", Target
    302 	    1| move v1, v5
    303 	.local v1, "x", int
    304 	    2| move-object v2, v6
    305 	.local v2, "msgs", java.lang.String[]
    306 	    3| const/4 v3, #+4 (0x00000004 | 5.60519e-45)
    307 	    4| move v0, v3
    308 	.end_local v0
    309 	    5| return v0
    310 }
    311 
    312 method Target.foo(int, java.lang.String[][]):java.lang.Integer
    313 {
    314 	.params "?", "?"
    315 	.src "entryHooks.java"
    316 	.line 78
    317 	.prologue_end
    318 	.line 78
    319 	    0| move-object v0, v4
    320 	.local v0, "this", Target
    321 	    1| move v1, v5
    322 	.local v1, "x", int
    323 	    2| move-object v2, v6
    324 	.local v2, "msgs", java.lang.String[][]
    325 	    3| const/4 v3, #+5 (0x00000005 | 7.00649e-45)
    326 	    4| invoke-static {v3}, java.lang.Integer.valueOf(int):java.lang.Integer
    327 	    7| move-result-object v3
    328 	    8| move-object v0, v3
    329 	.end_local v0
    330 	    9| return-object v0
    331 }
    332 
    333 method Target.foo():void
    334 {
    335 	.src "entryHooks.java"
    336 	.line 73
    337 	.prologue_end
    338 	.line 73
    339 	    0| return-void
    340 }
    341 
    342 method Tracer.<init>():void
    343 {
    344 	.src "entryHooks.java"
    345 	.line 2
    346 	.prologue_end
    347 	.line 2
    348 	    0| move-object v0, v2
    349 	.local v0, "this", Tracer
    350 	    1| move-object v1, v0
    351 	    2| invoke-direct {v1}, java.lang.Object.<init>():void
    352 	    5| return-void
    353 }
    354 
    355 method Tracer.onEntry(java.lang.String):void
    356 {
    357 	.params "?"
    358 	.src "entryHooks.java"
    359 	.line 6
    360 	.prologue_end
    361 	.line 6
    362 	    0| move-object v0, v5
    363 	.local v0, "methodName", java.lang.String
    364 	    1| sget-object v1, java.lang.System.out
    365 	    3| new-instance v2, java.lang.StringBuilder
    366 	    5| move-object v4, v2
    367 	    6| move-object v2, v4
    368 	    7| move-object v3, v4
    369 	    8| invoke-direct {v3}, java.lang.StringBuilder.<init>():void
    370 	   11| const-string v3, "OnEntry("
    371 	   13| invoke-virtual {v2,v3}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder
    372 	   16| move-result-object v2
    373 	   17| move-object v3, v0
    374 	   18| invoke-virtual {v2,v3}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder
    375 	   21| move-result-object v2
    376 	   22| const-string v3, ")"
    377 	   24| invoke-virtual {v2,v3}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder
    378 	   27| move-result-object v2
    379 	   28| invoke-virtual {v2}, java.lang.StringBuilder.toString():java.lang.String
    380 	   31| move-result-object v2
    381 	   32| invoke-virtual {v1,v2}, java.io.PrintStream.println(java.lang.String):void
    382 	.line 7
    383 	   35| return-void
    384 }
    385 
    386 method Tracer.onFooEntry(Target, int, java.lang.String):void
    387 {
    388 	.params "?", "?", "?"
    389 	.src "entryHooks.java"
    390 	.line 11
    391 	.prologue_end
    392 	.line 11
    393 	    0| move-object v0, v10
    394 	.local v0, "__this", Target
    395 	    1| move v1, v11
    396 	.local v1, "x", int
    397 	    2| move-object v2, v12
    398 	.local v2, "msg", java.lang.String
    399 	    3| sget-object v3, java.lang.System.out
    400 	    5| const-string v4, ">>> onFooEntry(%s, %d, %s)\n"
    401 	    7| const/4 v5, #+3 (0x00000003 | 4.20390e-45)
    402 	    8| new-array v5, v5, java.lang.Object[]
    403 	   10| move-object v9, v5
    404 	   11| move-object v5, v9
    405 	   12| move-object v6, v9
    406 	   13| const/4 v7, #+0 (0x00000000 | 0.00000)
    407 	   14| move-object v8, v0
    408 	   15| aput-object v8, v6, v7
    409 	   17| move-object v9, v5
    410 	   18| move-object v5, v9
    411 	   19| move-object v6, v9
    412 	   20| const/4 v7, #+1 (0x00000001 | 1.40130e-45)
    413 	   21| move v8, v1
    414 	   22| invoke-static {v8}, java.lang.Integer.valueOf(int):java.lang.Integer
    415 	   25| move-result-object v8
    416 	   26| aput-object v8, v6, v7
    417 	   28| move-object v9, v5
    418 	   29| move-object v5, v9
    419 	   30| move-object v6, v9
    420 	   31| const/4 v7, #+2 (0x00000002 | 2.80260e-45)
    421 	   32| move-object v8, v2
    422 	   33| aput-object v8, v6, v7
    423 	   35| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    424 	   38| move-result-object v3
    425 	.line 12
    426 	   39| return-void
    427 }
    428 
    429 method Tracer.onFooExit(int):int
    430 {
    431 	.params "?"
    432 	.src "entryHooks.java"
    433 	.line 16
    434 	.prologue_end
    435 	.line 16
    436 	    0| move v0, v8
    437 	.local v0, "retValue", int
    438 	    1| sget-object v1, java.lang.System.out
    439 	    3| const-string v2, ">>> onFooExit(%d)\n"
    440 	    5| const/4 v3, #+1 (0x00000001 | 1.40130e-45)
    441 	    6| new-array v3, v3, java.lang.Object[]
    442 	    8| move-object v7, v3
    443 	    9| move-object v3, v7
    444 	   10| move-object v4, v7
    445 	   11| const/4 v5, #+0 (0x00000000 | 0.00000)
    446 	   12| move v6, v0
    447 	   13| invoke-static {v6}, java.lang.Integer.valueOf(int):java.lang.Integer
    448 	   16| move-result-object v6
    449 	   17| aput-object v6, v4, v5
    450 	   19| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    451 	   22| move-result-object v1
    452 	.line 17
    453 	   23| move v1, v0
    454 	   24| const/16 v2, #+100 (0x00000064 | 1.40130e-43)
    455 	   26| add-int/lit8 v1, v1, #+100 (0x00000064 | 1.40130e-43)
    456 	   28| move v0, v1
    457 	.end_local v0
    458 	   29| return v0
    459 }
    460 
    461 method Tracer.wrapFoo(Base, int, java.lang.String):int
    462 {
    463 	.params "?", "?", "?"
    464 	.src "entryHooks.java"
    465 	.line 22
    466 	.prologue_end
    467 	.line 22
    468 	    0| move-object v0, v10
    469 	.local v0, "_this", Base
    470 	    1| move v1, v11
    471 	.local v1, "x", int
    472 	    2| move-object v2, v12
    473 	.local v2, "msg", java.lang.String
    474 	    3| sget-object v3, java.lang.System.out
    475 	    5| const-string v4, ">>> %s.test(%d, %s)\n"
    476 	    7| const/4 v5, #+3 (0x00000003 | 4.20390e-45)
    477 	    8| new-array v5, v5, java.lang.Object[]
    478 	   10| move-object v9, v5
    479 	   11| move-object v5, v9
    480 	   12| move-object v6, v9
    481 	   13| const/4 v7, #+0 (0x00000000 | 0.00000)
    482 	   14| move-object v8, v0
    483 	   15| invoke-virtual {v8}, java.lang.Object.getClass():java.lang.Class
    484 	   18| move-result-object v8
    485 	   19| invoke-virtual {v8}, java.lang.Class.getName():java.lang.String
    486 	   22| move-result-object v8
    487 	   23| aput-object v8, v6, v7
    488 	   25| move-object v9, v5
    489 	   26| move-object v5, v9
    490 	   27| move-object v6, v9
    491 	   28| const/4 v7, #+1 (0x00000001 | 1.40130e-45)
    492 	   29| move v8, v1
    493 	   30| invoke-static {v8}, java.lang.Integer.valueOf(int):java.lang.Integer
    494 	   33| move-result-object v8
    495 	   34| aput-object v8, v6, v7
    496 	   36| move-object v9, v5
    497 	   37| move-object v5, v9
    498 	   38| move-object v6, v9
    499 	   39| const/4 v7, #+2 (0x00000002 | 2.80260e-45)
    500 	   40| move-object v8, v2
    501 	   41| aput-object v8, v6, v7
    502 	   43| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    503 	   46| move-result-object v3
    504 	.line 23
    505 	   47| move-object v3, v0
    506 	   48| move v4, v1
    507 	   49| move-object v5, v2
    508 	   50| invoke-virtual {v3,v4,v5}, Base.foo(int, java.lang.String):int
    509 	   53| move-result v3
    510 	   54| const/16 v4, #+10 (0x0000000a | 1.40130e-44)
    511 	   56| add-int/lit8 v3, v3, #+10 (0x0000000a | 1.40130e-44)
    512 	   58| move v0, v3
    513 	.end_local v0
    514 	   59| return v0
    515 }
    516