Patent ID: 7712093

Claim:
A method for analysis of object flow during execution of individual instructions of a method, comprising once per the method: invoking a method of an object-oriented application; for each instruction of a plurality of instructions of the method modeling the effect of each instruction on a local variable array and an operand stack, the modeling further comprising: determining a representation for the state of a plurality of local variables of a local variable array and of an operand stack at a current instruction of the plurality of instructions, wherein the state of the representation comprises a set of objects permitted to exist at each operand stack slot of a plurality of operand stack slots of the operand stack and at each local variable slot of a plurality of local variable slots of the local variable array for the current instruction; determining successor instructions of the plurality of instructions that can follow the current instruction; following execution of the current instruction, merging the state of the representation of the operand stack and the local variable array into each of the successor instructions, wherein if a successor instruction of the plurality of successor instructions has been previously executed further comprising merging each set of objects of the current instruction with the corresponding set of objects of the successor instruction to create a merged set of objects of the successor instruction; and iteratively repeating modeling the effect of each instruction of the plurality of instructions on the local variable array and the operand stack until the states of the local variable array and the operand stack at each instruction of the plurality of instructions converge to a final state, wherein for each set of objects that exist at each operand stack slot of the plurality of operand stack slots of the operand stack and for each set of objects that exists at each local variable slot of the plurality of local variable slots of the local variable array when the states of the local variable array and the operand stack converge, an object of the set of objects is mapped to an instruction of the plurality of instructions where the object was introduced to the method.