method Base.():void { .src "Target.java" .line 1 .prologue_end .line 1 0| invoke-direct {v0}, java.lang.Object.():void 3| return-void } method Base.foo(int, java.lang.String):int { .params "?", "?" .src "Target.java" .line 3 .prologue_end .line 3 0| const/4 v0, #+0 (0x00000000 | 0.00000) 1| return v0 } method IBase.bar(java.lang.String):void { } method Target.(Base, IBase):void { .params "?", "?" .src "Target.java" .line 15 .prologue_end .line 15 0| invoke-direct {v0}, java.lang.Object.():void .line 16 3| iput-object v1, v0, Target.base .line 17 5| iput-object v2, v0, Target.iBase .line 18 7| return-void } method Target.foo(int, java.lang.String):int { .params "?", "?" .src "Target.java" .line 21 .prologue_end .line 21 0| iget-object v0, v2, Target.base 2| invoke-virtual {v0,v3,v4}, Base.foo(int, java.lang.String):int 5| move-result v0 .line 22 6| iget-object v1, v2, Target.iBase 8| invoke-interface {v1,v4}, IBase.bar(java.lang.String):void .line 23 11| return v0 } method Target.foo(int, java.lang.String[][]):java.lang.Integer { .params "?", "?" .src "Target.java" .line 27 .prologue_end .line 27 0| iget-object v0, v2, Target.base 2| const-string v1, "foo" 4| invoke-virtual {v0,v3,v1}, Base.foo(int, java.lang.String):int .line 28 7| iget-object v0, v2, Target.iBase 9| const-string v1, "bar" 11| invoke-interface {v0,v1}, IBase.bar(java.lang.String):void .line 29 14| const/4 v0, #+0 (0x00000000 | 0.00000) 15| move-object/16 v1, v0 18| const-string v0, "Target->foo(I[[Ljava/lang/String;)Ljava/lang/Integer;" 20| invoke-static/range {v0..v1}, Tracer.onFooExit(java.lang.String, java.lang.Object):java.lang.Object 23| move-result-object v0 24| check-cast v0, java.lang.Integer 26| return-object v0 }