Dynamic object visualization and browsing system
First Claim
Patent Images
1. A method of monitoring execution of an object-oriented computer program on a digital data processor with a memory, said method comprising the steps of:
- A. determining a state of said digital data processor when said monitored computer program reaches selected points during execution,B. determining from the state of said digital data processor at each selected points a status of at least one object forming part of said monitored computer program,C. generating a dynamic program model from the digital data processor states determined in step B, the model containing an element representative of each object existing in the memory, and relationships therebetween,D. generating a display from the model, the display having elements representing at least some of the objects existing in memory and the relationships therebetween, andE. updating the display substantially concurrently with execution of said monitored computer program so that an active picture of objects and their relationships is displayed as said monitored computer program executes.
3 Assignments
0 Petitions
Accused Products
Abstract
A method to automatically monitor an object-oriented program, e.g., for debugging purposes, is characterized by the steps of determining a state of the digital data processor at selected points during execution of the program and, from that state, determining the status of objects created the program. The method also contemplates generating an animated graphical display reflecting the status of those selected objects, and their interrelationships, substantially concurrently with execution of the program.
-
Citations
28 Claims
-
1. A method of monitoring execution of an object-oriented computer program on a digital data processor with a memory, said method comprising the steps of:
-
A. determining a state of said digital data processor when said monitored computer program reaches selected points during execution, B. determining from the state of said digital data processor at each selected points a status of at least one object forming part of said monitored computer program, C. generating a dynamic program model from the digital data processor states determined in step B, the model containing an element representative of each object existing in the memory, and relationships therebetween, D. generating a display from the model, the display having elements representing at least some of the objects existing in memory and the relationships therebetween, and E. updating the display substantially concurrently with execution of said monitored computer program so that an active picture of objects and their relationships is displayed as said monitored computer program executes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method of monitoring execution of an object-oriented computer program on a digital data processor, said method comprising the steps of
A. determining a state of said digital data processor at selected points during execution of said monitored computer program by (I) analyzing said monitored computer program and setting breakpoints to suspend execution of that program at selected points based on said analysis, (ii) responding to suspension of execution of said monitored computer program at such breakpoints for (a) determining the state of said digital data processor upon such suspension, and (b) resuming execution of said monitored computer program, B. determining from the state of said digital data processor a status of all objects created by said monitored computer program at each of those selected points by (I) generating a static program model representative of object-oriented constructs, including at least one of classes, methods, methods arguments, objects and member types, of said monitored program, (ii) generating a dynamic program model representative of (I) objects in existence during execution of said monitored programs, (ii) relations between those objects, (iii) valid addresses for those objects and parts thereof, (iv) a current stack of method invocations, and (v) a current state of said digital data processor, (iii) interpreting said state of side digital data processor in view of said static model and said dynamic model to determine said status of objects created by said monitored computer programs, and C. using the status determined in step B to generate a dynamic graphical display representative of a status of selected objects, and relationships therebetween, at said selected points concurrent with execution of said monitored program.
-
23. A method of monitoring execution of an object-oriented computer program on a digital data processor, said method comprising the steps of
A. determining a state of said digital data processor at selected points during execution of said monitored computer program by (I) setting breakpoints to suspend execution of that program during execution of any of a method call, a method return, and a memory write by said monitored computer program, (ii) responding to suspension of execution of said monitored computer program at such breakpoints for (a) determining the state of said digital data processor upon such suspension, and (b) resuming execution of said monitored computer program, B. determining from the state of said digital data processor a status of all objects created by said monitored computer program, C. generating from the status determined in step B a dynamic graphical display representative of a status of said objects, and relationships therebetween, at said breakpoints, D. responding to a method call to a constructor method by determining whether an object in which that method is contained is being newly created and, if so, by updating said display to represent such creation, and E. responding to at least a first reference to an object by another object for updating said display to represent a referencing relation between those objects.
-
24. A computer program product for monitoring execution of an object-oriented computer program on a digital data processor with a memory, said computer program product comprising a computer usable media having computer readable program code thereon, the computer readable program code including:
-
program code for determining a state of said digital data processor when said monitored computer program reaches selected points during execution, program code for determining from the state of said digital data processor at each selected point a status of at least one object forming part of said monitored computer program, program code for generating a dynamic program model from the determined digital data processor states, the model containing an element representative of each object existing in the memory, and relationships therebetween, program code for generating a display from the model, the display having elements representing at least some of the objects existing in memory and the relationships therebetween, and program code for updating the display substantially concurrently with execution of said monitored computer program so that an active picture of objects and their relationships is displayed as said monitored computer program executes. - View Dependent Claims (25)
-
-
26. A method of monitoring execution of an object-oriented computer program on a digital data processor with a memory, said method comprising the steps of:
-
A. determining a state of said digital data processor when said monitored computer program reaches selected points during execution; B. determining from the state of said digital data processor at each selected point a status of at least one object forming part of said monitored computer program; C. generating a dynamic program model from the digital data processor states determined in step B, the model containing an element representative of each object existing in the memory, and relationships therebetween; D. generating a display from the model, the display having elements representing at least some of the objects existing in memory and the relationships therebetween; E. updating the display substantially concurrently with execution of said monitored computer program so that an active picture of objects and their relationships is displayed as said monitored computer program executes; F. determining said state of said digital data processor during execution of any of a method call, a method return, and a memory write by said monitored computer program; G. responding to a method call to a constructor method by determining whether an object in which that method is contained is being newly created and, if so, by updating said display to represent such creation; H. responding to a determination that an object is being newly created for by updating said display to represent a creation relation between that object and an object which created it; I. responding to any of a first and subsequent reference to an object by another object for updating said display to represent a referencing relation between those objects; J. responding to at least selected memory writes during execution of said monitored program for determining whether (I) a target address thereof is an object data member capable of storing an object reference and (ii) a value to be written to said target address is that of an object; and K. responding to positive such determinations for updating said display to represent a referencing relationship between the object containing the data member of said target address and the object referred to by said value. - View Dependent Claims (27, 28)
-
Specification