| |
| method Base.<init>():void |
| { |
| .src "entryHooks.java" |
| .line 27 |
| 0| move-object/16 v15, v25 |
| 3| move-object/16 v14, v15 |
| 6| move-object/16 v13, v14 |
| .prologue_end |
| .line 27 |
| 9| move-object v11, v13 |
| .local v11, "this", Base |
| 10| move-object v12, v11 |
| 11| invoke-direct {v12}, java.lang.Object.<init>():void |
| 14| return-void |
| } |
| |
| method Base.foo(int, java.lang.String):int |
| { |
| .params "?", "?" |
| .src "entryHooks.java" |
| .line 31 |
| 0| move-object/16 v13, v33 |
| 3| move/16 v14, v34 |
| 6| move-object/16 v15, v35 |
| 9| move-object/16 v12, v13 |
| 12| move/16 v13, v14 |
| 15| move-object/16 v14, v15 |
| 18| move-object/16 v11, v12 |
| 21| move/16 v12, v13 |
| 24| move-object/16 v13, v14 |
| .prologue_end |
| .line 31 |
| 27| move-object v1, v11 |
| .local v1, "this", Base |
| 28| move v2, v12 |
| .local v2, "x", int |
| 29| move-object v3, v13 |
| .local v3, "msg", java.lang.String |
| 30| sget-object v4, java.lang.System.out |
| 32| const-string v5, "Base.foo(%d, '%s')\n" |
| 34| const/4 v6, #+2 (0x00000002 | 2.80260e-45) |
| 35| new-array v6, v6, java.lang.Object[] |
| 37| move-object v10, v6 |
| 38| move-object v6, v10 |
| 39| move-object v7, v10 |
| 40| const/4 v8, #+0 (0x00000000 | 0.00000) |
| 41| move v9, v2 |
| 42| invoke-static {v9}, java.lang.Integer.valueOf(int):java.lang.Integer |
| 45| move-result-object v9 |
| 46| aput-object v9, v7, v8 |
| 48| move-object v10, v6 |
| 49| move-object v6, v10 |
| 50| move-object v7, v10 |
| 51| const/4 v8, #+1 (0x00000001 | 1.40130e-45) |
| 52| move-object v9, v3 |
| 53| aput-object v9, v7, v8 |
| 55| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 58| move-result-object v4 |
| .line 32 |
| 59| move v4, v2 |
| 60| move v1, v4 |
| .end_local v1 |
| 61| return v1 |
| } |
| |
| method Derived.<init>():void |
| { |
| .src "entryHooks.java" |
| .line 36 |
| 0| move-object/16 v15, v25 |
| 3| move-object/16 v14, v15 |
| 6| move-object/16 v13, v14 |
| .prologue_end |
| .line 36 |
| 9| move-object v11, v13 |
| .local v11, "this", Derived |
| 10| move-object v12, v11 |
| 11| invoke-direct {v12}, Base.<init>():void |
| 14| return-void |
| } |
| |
| method Derived.foo(int, java.lang.String):int |
| { |
| .params "?", "?" |
| .src "entryHooks.java" |
| .line 40 |
| 0| move-object/16 v13, v33 |
| 3| move/16 v14, v34 |
| 6| move-object/16 v15, v35 |
| 9| move-object/16 v12, v13 |
| 12| move/16 v13, v14 |
| 15| move-object/16 v14, v15 |
| 18| move-object/16 v11, v12 |
| 21| move/16 v12, v13 |
| 24| move-object/16 v13, v14 |
| .prologue_end |
| .line 40 |
| 27| move-object v1, v11 |
| .local v1, "this", Derived |
| 28| move v2, v12 |
| .local v2, "x", int |
| 29| move-object v3, v13 |
| .local v3, "msg", java.lang.String |
| 30| sget-object v4, java.lang.System.out |
| 32| const-string v5, "Derived.foo(%d, '%s')\n" |
| 34| const/4 v6, #+2 (0x00000002 | 2.80260e-45) |
| 35| new-array v6, v6, java.lang.Object[] |
| 37| move-object v10, v6 |
| 38| move-object v6, v10 |
| 39| move-object v7, v10 |
| 40| const/4 v8, #+0 (0x00000000 | 0.00000) |
| 41| move v9, v2 |
| 42| invoke-static {v9}, java.lang.Integer.valueOf(int):java.lang.Integer |
| 45| move-result-object v9 |
| 46| aput-object v9, v7, v8 |
| 48| move-object v10, v6 |
| 49| move-object v6, v10 |
| 50| move-object v7, v10 |
| 51| const/4 v8, #+1 (0x00000001 | 1.40130e-45) |
| 52| move-object v9, v3 |
| 53| aput-object v9, v7, v8 |
| 55| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 58| move-result-object v4 |
| .line 41 |
| 59| move v4, v2 |
| 60| const/4 v5, #+2 (0x00000002 | 2.80260e-45) |
| 61| mul-int/lit8 v4, v4, #+2 (0x00000002 | 2.80260e-45) |
| 63| move v1, v4 |
| .end_local v1 |
| 64| return v1 |
| } |
| |
| method Target.<init>():void |
| { |
| .src "entryHooks.java" |
| .line 45 |
| 0| move-object/16 v15, v25 |
| 3| move-object/16 v14, v15 |
| 6| move-object/16 v13, v14 |
| .prologue_end |
| .line 45 |
| 9| move-object v11, v13 |
| .local v11, "this", Target |
| 10| move-object v12, v11 |
| 11| invoke-direct {v12}, java.lang.Object.<init>():void |
| 14| return-void |
| } |
| |
| method Target.main(java.lang.String[]):void |
| { |
| .params "?" |
| .src "entryHooks.java" |
| .line 51 |
| 0| move-object/16 v15, v31 |
| 3| move-object/16 v14, v15 |
| 6| move-object/16 v13, v14 |
| .prologue_end |
| .line 51 |
| 9| move-object v5, v13 |
| .local v5, "args", java.lang.String[] |
| 10| sget-object v6, java.lang.System.out |
| 12| const-string v7, "Hello, world!" |
| 14| invoke-virtual {v6,v7}, java.io.PrintStream.println(java.lang.String):void |
| .line 52 |
| 17| sget-object v6, java.lang.System.out |
| 19| const-string v7, "final = %d\n" |
| 21| const/4 v8, #+1 (0x00000001 | 1.40130e-45) |
| 22| new-array v8, v8, java.lang.Object[] |
| 24| move-object v12, v8 |
| 25| move-object v8, v12 |
| 26| move-object v9, v12 |
| 27| const/4 v10, #+0 (0x00000000 | 0.00000) |
| 28| invoke-static {}, Target.test():int |
| 31| move-result v11 |
| 32| invoke-static {v11}, java.lang.Integer.valueOf(int):java.lang.Integer |
| 35| move-result-object v11 |
| 36| aput-object v11, v9, v10 |
| 38| invoke-virtual {v6,v7,v8}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 41| move-result-object v6 |
| .line 53 |
| 42| sget-object v6, java.lang.System.out |
| 44| const-string v7, "Good bye!" |
| 46| invoke-virtual {v6,v7}, java.io.PrintStream.println(java.lang.String):void |
| .line 54 |
| 49| return-void |
| } |
| |
| method Target.test():int |
| { |
| .src "entryHooks.java" |
| .line 58 |
| .prologue_end |
| .line 58 |
| 0| new-instance v1, Target |
| 2| move-object v4, v1 |
| 3| move-object v1, v4 |
| 4| move-object v2, v4 |
| 5| invoke-direct {v2}, Target.<init>():void |
| 8| move-object v0, v1 |
| .line 59 |
| .local v0, "obj", Target |
| 9| move-object v1, v0 |
| 10| new-instance v2, Derived |
| 12| move-object v4, v2 |
| 13| move-object v2, v4 |
| 14| move-object v3, v4 |
| 15| invoke-direct {v3}, Derived.<init>():void |
| 18| iput-object v2, v1, Target.test |
| .line 60 |
| 20| move-object v1, v0 |
| 21| const/4 v2, #+3 (0x00000003 | 4.20390e-45) |
| 22| const-string v3, "Testing..." |
| 24| invoke-virtual {v1,v2,v3}, Target.foo(int, java.lang.String):int |
| 27| move-result v1 |
| 28| move v0, v1 |
| .end_local v0 |
| 29| return v0 |
| } |
| |
| method Target.foo(int):int |
| { |
| .params "?" |
| .src "entryHooks.java" |
| .line 74 |
| 0| move-object/16 v14, v26 |
| 3| move/16 v15, v27 |
| 6| move-object/16 v13, v14 |
| 9| move/16 v14, v15 |
| 12| move-object/16 v12, v13 |
| 15| move/16 v13, v14 |
| .prologue_end |
| .line 74 |
| 18| move-object v9, v12 |
| .local v9, "this", Target |
| 19| move v10, v13 |
| .local v10, "x", int |
| 20| const/4 v11, #+1 (0x00000001 | 1.40130e-45) |
| 21| move v9, v11 |
| .end_local v9 |
| 22| return v9 |
| } |
| |
| method Target.foo(int, int):int |
| { |
| .params "?", "?" |
| .src "entryHooks.java" |
| .line 75 |
| 0| move-object/16 v13, v27 |
| 3| move/16 v14, v28 |
| 6| move/16 v15, v29 |
| 9| move-object/16 v12, v13 |
| 12| move/16 v13, v14 |
| 15| move/16 v14, v15 |
| 18| move-object/16 v11, v12 |
| 21| move/16 v12, v13 |
| 24| move/16 v13, v14 |
| .prologue_end |
| .line 75 |
| 27| move-object v7, v11 |
| .local v7, "this", Target |
| 28| move v8, v12 |
| .local v8, "x", int |
| 29| move v9, v13 |
| .local v9, "y", int |
| 30| const/4 v10, #+2 (0x00000002 | 2.80260e-45) |
| 31| move v7, v10 |
| .end_local v7 |
| 32| return v7 |
| } |
| |
| method Target.foo(int, java.lang.String):int |
| { |
| .params "?", "?" |
| .src "entryHooks.java" |
| .line 65 |
| 0| move-object/16 v13, v32 |
| 3| move/16 v14, v33 |
| 6| move-object/16 v15, v34 |
| 9| move-object/16 v12, v13 |
| 12| move/16 v13, v14 |
| 15| move-object/16 v14, v15 |
| 18| move-object/16 v11, v12 |
| 21| move/16 v12, v13 |
| 24| move-object/16 v13, v14 |
| .prologue_end |
| .line 65 |
| 27| move-object v2, v11 |
| .local v2, "this", Target |
| 28| move v3, v12 |
| .local v3, "x", int |
| 29| move-object v4, v13 |
| .local v4, "msg", java.lang.String |
| 30| const/4 v7, #+0 (0x00000000 | 0.00000) |
| 31| move v5, v7 |
| .line 66 |
| .local v5, "sum", int |
| 32| const/4 v7, #+0 (0x00000000 | 0.00000) |
| 33| move v6, v7 |
| Label_1: |
| .local v6, "i", int |
| 34| move v7, v6 |
| 35| move v8, v3 |
| 36| if-ge v7, v8, Label_2 |
| .line 68 |
| 38| move v7, v5 |
| 39| move-object v8, v2 |
| 40| iget-object v8, v8, Target.test |
| 42| move v9, v6 |
| 43| move-object v10, v4 |
| 44| invoke-virtual {v8,v9,v10}, Base.foo(int, java.lang.String):int |
| 47| move-result v8 |
| 48| add-int/2addr v7, v8 |
| 49| move v5, v7 |
| .line 66 |
| 50| add-int/lit8 v6, v6, #+1 (0x00000001 | 1.40130e-45) |
| 52| goto/16 Label_1 |
| Label_2: |
| .line 70 |
| 54| move v7, v5 |
| 55| move v2, v7 |
| .end_local v2 |
| 56| return v2 |
| } |
| |
| method Target.foo(int, java.lang.String, java.lang.String):int |
| { |
| .params "?", "?", "?" |
| .src "entryHooks.java" |
| .line 76 |
| 0| move-object/16 v12, v28 |
| 3| move/16 v13, v29 |
| 6| move-object/16 v14, v30 |
| 9| move-object/16 v15, v31 |
| 12| move-object/16 v11, v12 |
| 15| move/16 v12, v13 |
| 18| move-object/16 v13, v14 |
| 21| move-object/16 v14, v15 |
| 24| move-object/16 v10, v11 |
| 27| move/16 v11, v12 |
| 30| move-object/16 v12, v13 |
| 33| move-object/16 v13, v14 |
| .prologue_end |
| .line 76 |
| 36| move-object v5, v10 |
| .local v5, "this", Target |
| 37| move v6, v11 |
| .local v6, "x", int |
| 38| move-object v7, v12 |
| .local v7, "msg", java.lang.String |
| 39| move-object v8, v13 |
| .local v8, "msg2", java.lang.String |
| 40| const/4 v9, #+3 (0x00000003 | 4.20390e-45) |
| 41| move v5, v9 |
| .end_local v5 |
| 42| return v5 |
| } |
| |
| method Target.foo(int, java.lang.String[]):int |
| { |
| .params "?", "?" |
| .src "entryHooks.java" |
| .line 77 |
| 0| move-object/16 v13, v27 |
| 3| move/16 v14, v28 |
| 6| move-object/16 v15, v29 |
| 9| move-object/16 v12, v13 |
| 12| move/16 v13, v14 |
| 15| move-object/16 v14, v15 |
| 18| move-object/16 v11, v12 |
| 21| move/16 v12, v13 |
| 24| move-object/16 v13, v14 |
| .prologue_end |
| .line 77 |
| 27| move-object v7, v11 |
| .local v7, "this", Target |
| 28| move v8, v12 |
| .local v8, "x", int |
| 29| move-object v9, v13 |
| .local v9, "msgs", java.lang.String[] |
| 30| const/4 v10, #+4 (0x00000004 | 5.60519e-45) |
| 31| move v7, v10 |
| .end_local v7 |
| 32| return v7 |
| } |
| |
| method Target.foo(int, java.lang.String[][]):java.lang.Integer |
| { |
| .params "?", "?" |
| .src "entryHooks.java" |
| .line 78 |
| 0| move-object/16 v13, v27 |
| 3| move/16 v14, v28 |
| 6| move-object/16 v15, v29 |
| 9| move-object/16 v12, v13 |
| 12| move/16 v13, v14 |
| 15| move-object/16 v14, v15 |
| 18| move-object/16 v11, v12 |
| 21| move/16 v12, v13 |
| 24| move-object/16 v13, v14 |
| .prologue_end |
| .line 78 |
| 27| move-object v7, v11 |
| .local v7, "this", Target |
| 28| move v8, v12 |
| .local v8, "x", int |
| 29| move-object v9, v13 |
| .local v9, "msgs", java.lang.String[][] |
| 30| const/4 v10, #+5 (0x00000005 | 7.00649e-45) |
| 31| invoke-static {v10}, java.lang.Integer.valueOf(int):java.lang.Integer |
| 34| move-result-object v10 |
| 35| move-object v7, v10 |
| .end_local v7 |
| 36| return-object v7 |
| } |
| |
| method Target.foo():void |
| { |
| .src "entryHooks.java" |
| .line 73 |
| 0| move-object/16 v15, v23 |
| 3| move-object/16 v14, v15 |
| 6| move-object/16 v13, v14 |
| .prologue_end |
| .line 73 |
| 9| return-void |
| } |
| |
| method Tracer.<init>():void |
| { |
| .src "entryHooks.java" |
| .line 2 |
| 0| move-object/16 v15, v25 |
| 3| move-object/16 v14, v15 |
| 6| move-object/16 v13, v14 |
| .prologue_end |
| .line 2 |
| 9| move-object v11, v13 |
| .local v11, "this", Tracer |
| 10| move-object v12, v11 |
| 11| invoke-direct {v12}, java.lang.Object.<init>():void |
| 14| return-void |
| } |
| |
| method Tracer.onEntry(java.lang.String):void |
| { |
| .params "?" |
| .src "entryHooks.java" |
| .line 6 |
| 0| move-object/16 v15, v28 |
| 3| move-object/16 v14, v15 |
| 6| move-object/16 v13, v14 |
| .prologue_end |
| .line 6 |
| 9| move-object v8, v13 |
| .local v8, "methodName", java.lang.String |
| 10| sget-object v9, java.lang.System.out |
| 12| new-instance v10, java.lang.StringBuilder |
| 14| move-object v12, v10 |
| 15| move-object v10, v12 |
| 16| move-object v11, v12 |
| 17| invoke-direct {v11}, java.lang.StringBuilder.<init>():void |
| 20| const-string v11, "OnEntry(" |
| 22| invoke-virtual {v10,v11}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder |
| 25| move-result-object v10 |
| 26| move-object v11, v8 |
| 27| invoke-virtual {v10,v11}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder |
| 30| move-result-object v10 |
| 31| const-string v11, ")" |
| 33| invoke-virtual {v10,v11}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder |
| 36| move-result-object v10 |
| 37| invoke-virtual {v10}, java.lang.StringBuilder.toString():java.lang.String |
| 40| move-result-object v10 |
| 41| invoke-virtual {v9,v10}, java.io.PrintStream.println(java.lang.String):void |
| .line 7 |
| 44| return-void |
| } |
| |
| method Tracer.onFooEntry(Target, int, java.lang.String):void |
| { |
| .params "?", "?", "?" |
| .src "entryHooks.java" |
| .line 11 |
| 0| move-object/16 v13, v33 |
| 3| move/16 v14, v34 |
| 6| move-object/16 v15, v35 |
| 9| move-object/16 v12, v13 |
| 12| move/16 v13, v14 |
| 15| move-object/16 v14, v15 |
| 18| move-object/16 v11, v12 |
| 21| move/16 v12, v13 |
| 24| move-object/16 v13, v14 |
| .prologue_end |
| .line 11 |
| 27| move-object v1, v11 |
| .local v1, "__this", Target |
| 28| move v2, v12 |
| .local v2, "x", int |
| 29| move-object v3, v13 |
| .local v3, "msg", java.lang.String |
| 30| sget-object v4, java.lang.System.out |
| 32| const-string v5, ">>> onFooEntry(%s, %d, %s)\n" |
| 34| const/4 v6, #+3 (0x00000003 | 4.20390e-45) |
| 35| new-array v6, v6, java.lang.Object[] |
| 37| move-object v10, v6 |
| 38| move-object v6, v10 |
| 39| move-object v7, v10 |
| 40| const/4 v8, #+0 (0x00000000 | 0.00000) |
| 41| move-object v9, v1 |
| 42| aput-object v9, v7, v8 |
| 44| move-object v10, v6 |
| 45| move-object v6, v10 |
| 46| move-object v7, v10 |
| 47| const/4 v8, #+1 (0x00000001 | 1.40130e-45) |
| 48| move v9, v2 |
| 49| invoke-static {v9}, java.lang.Integer.valueOf(int):java.lang.Integer |
| 52| move-result-object v9 |
| 53| aput-object v9, v7, v8 |
| 55| move-object v10, v6 |
| 56| move-object v6, v10 |
| 57| move-object v7, v10 |
| 58| const/4 v8, #+2 (0x00000002 | 2.80260e-45) |
| 59| move-object v9, v3 |
| 60| aput-object v9, v7, v8 |
| 62| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 65| move-result-object v4 |
| .line 12 |
| 66| return-void |
| } |
| |
| method Tracer.onFooExit(int):int |
| { |
| .params "?" |
| .src "entryHooks.java" |
| .line 16 |
| 0| move/16 v15, v31 |
| 3| move/16 v14, v15 |
| 6| move/16 v13, v14 |
| .prologue_end |
| .line 16 |
| 9| move v5, v13 |
| .local v5, "retValue", int |
| 10| sget-object v6, java.lang.System.out |
| 12| const-string v7, ">>> onFooExit(%d)\n" |
| 14| const/4 v8, #+1 (0x00000001 | 1.40130e-45) |
| 15| new-array v8, v8, java.lang.Object[] |
| 17| move-object v12, v8 |
| 18| move-object v8, v12 |
| 19| move-object v9, v12 |
| 20| const/4 v10, #+0 (0x00000000 | 0.00000) |
| 21| move v11, v5 |
| 22| invoke-static {v11}, java.lang.Integer.valueOf(int):java.lang.Integer |
| 25| move-result-object v11 |
| 26| aput-object v11, v9, v10 |
| 28| invoke-virtual {v6,v7,v8}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 31| move-result-object v6 |
| .line 17 |
| 32| move v6, v5 |
| 33| const/16 v7, #+100 (0x00000064 | 1.40130e-43) |
| 35| add-int/lit8 v6, v6, #+100 (0x00000064 | 1.40130e-43) |
| 37| move v5, v6 |
| .end_local v5 |
| 38| return v5 |
| } |
| |
| method Tracer.wrapFoo(Base, int, java.lang.String):int |
| { |
| .params "?", "?", "?" |
| .src "entryHooks.java" |
| .line 22 |
| 0| move-object/16 v13, v33 |
| 3| move/16 v14, v34 |
| 6| move-object/16 v15, v35 |
| 9| move-object/16 v12, v13 |
| 12| move/16 v13, v14 |
| 15| move-object/16 v14, v15 |
| 18| move-object/16 v11, v12 |
| 21| move/16 v12, v13 |
| 24| move-object/16 v13, v14 |
| .prologue_end |
| .line 22 |
| 27| move-object v1, v11 |
| .local v1, "_this", Base |
| 28| move v2, v12 |
| .local v2, "x", int |
| 29| move-object v3, v13 |
| .local v3, "msg", java.lang.String |
| 30| sget-object v4, java.lang.System.out |
| 32| const-string v5, ">>> %s.test(%d, %s)\n" |
| 34| const/4 v6, #+3 (0x00000003 | 4.20390e-45) |
| 35| new-array v6, v6, java.lang.Object[] |
| 37| move-object v10, v6 |
| 38| move-object v6, v10 |
| 39| move-object v7, v10 |
| 40| const/4 v8, #+0 (0x00000000 | 0.00000) |
| 41| move-object v9, v1 |
| 42| invoke-virtual {v9}, java.lang.Object.getClass():java.lang.Class |
| 45| move-result-object v9 |
| 46| invoke-virtual {v9}, java.lang.Class.getName():java.lang.String |
| 49| move-result-object v9 |
| 50| aput-object v9, v7, v8 |
| 52| move-object v10, v6 |
| 53| move-object v6, v10 |
| 54| move-object v7, v10 |
| 55| const/4 v8, #+1 (0x00000001 | 1.40130e-45) |
| 56| move v9, v2 |
| 57| invoke-static {v9}, java.lang.Integer.valueOf(int):java.lang.Integer |
| 60| move-result-object v9 |
| 61| aput-object v9, v7, v8 |
| 63| move-object v10, v6 |
| 64| move-object v6, v10 |
| 65| move-object v7, v10 |
| 66| const/4 v8, #+2 (0x00000002 | 2.80260e-45) |
| 67| move-object v9, v3 |
| 68| aput-object v9, v7, v8 |
| 70| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 73| move-result-object v4 |
| .line 23 |
| 74| move-object v4, v1 |
| 75| move v5, v2 |
| 76| move-object v6, v3 |
| 77| invoke-virtual {v4,v5,v6}, Base.foo(int, java.lang.String):int |
| 80| move-result v4 |
| 81| const/16 v5, #+10 (0x0000000a | 1.40130e-44) |
| 83| add-int/lit8 v4, v4, #+10 (0x0000000a | 1.40130e-44) |
| 85| move v1, v4 |
| .end_local v1 |
| 86| return v1 |
| } |