From: Vasanth V. <vve...@ro...> - 2004-09-26 03:55:08
|
Hi Jikes list, I want to instrument some code with a a Call instruction to a virtual method that I have defined elsewhere in the VM. I know how to do this for static methods but am confused about the virtual method case, even after studying the CallHelper() function. Specifically, Say that I have defined the virtual method in a class myClass: public class A { public void myMethod( ); } Say that I have defined a field in another class that refers to an object of this class: A a = new A( ); and that this field "a" is accessable from the class where I'm creating this Call instruction. I want to create a CALL instruction that represents the call, "a.myMethod()". I'm trying to do it like this: First I add a pointer to the method myMethod in VM_Entrypoints. Then in my instrumentation phase I have, Call.create0(CALL, NULL, methodaddress, OPT_MethodOperand.VIRTUAL(<?>, VM_Entrypoints.myMethod)); I'm not sure what to put for the <?> parameter which is the VM_MethodReference for the method. Also how do I encode the information that the object reference should be the "a" field? Thanks, Vasanth |