You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

630 lines
17 KiB

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
}