Tool and method for diagnosing and correcting errors in a computer program
First Claim
1. A method for analyzing a program having a plurality of functions, the method comprising the steps, performed by a computer system having a graphical output display device, of:
- analyzing symbolic information associated with the program to construct a call tree graph of the functions included in the program;
interrupting execution of the program at a predetermined point;
retrieving state information associated with the program; and
displaying at least a portion of the call tree graph on the graphical output display device.
2 Assignments
0 Petitions
Accused Products
Abstract
In a computer system, an improved tool and method for debugging complex computer programs is disclosed. The tool extracts critical debugging information from computer memory and/or remote storage memory and uses this information to graphically depict call relationships among various functions comprising the program which is the subject of the debugging operation. Debug commands are accepted by the tool through a graphical user interface using operations performed by the user directly on the graphical representation of program functions. The ability of the tool to accept user commands through the graphical user interface and to display critical debugging information using this same interface greatly facilitates program debugging.
177 Citations
20 Claims
-
1. A method for analyzing a program having a plurality of functions, the method comprising the steps, performed by a computer system having a graphical output display device, of:
-
analyzing symbolic information associated with the program to construct a call tree graph of the functions included in the program; interrupting execution of the program at a predetermined point; retrieving state information associated with the program; and displaying at least a portion of the call tree graph on the graphical output display device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for debugging a program, comprising the steps of:
-
displaying on a computer screen a call tree graph of at least a portion of the program that is to be debugged; highlighting those portions of the call tree graph depicting functions of the program that have already been executed; and inputting a debug command by associating a pointer on the graphical representation of the program with the location in the program where the command is to be executed. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A data processing apparatus for analyzing a program having a plurality of functions, the apparatus comprising:
-
a first processing portion configured to analyze symbolic information associated with the program to construct a call tree graph of the functions included in the program; a second processing portion configured to interrupt execution of the program at a predetermined point; a third processing portion configured to retrieve state information associated with the program; a fourth processing portion configured to display at least a portion of the call tree graph on the graphical output display device; and a fifth processing portion configured to highlight the portions of the call tree graph on the graphical output display device that correspond to the state of the program. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A computer program product comprising:
a computer usable medium having computer readable code embodied therein for debugging a program, the computer program product comprising; first computer readable program code devices configured to cause a computer system to display on a computer screen a call tree graph of at least a portion of the program that is to be debugged; second computer readable program code devices configured to cause a computer system to highlight those portions of the call tree graph depicting functions of the program that have already been executed; and third computer readable program code devices configured to cause a computer system to input a debug command by associating a pointer on the graphical representation of the program with the location in the program where the command is to be executed.
Specification