Method and apparatus for a fast debugger fix and continue operation
First Claim
1. A method for debugging a computer application program on a computer system which includes a processor, a program counter, memory and program instructions, the method being designed to allow generation and insertion of corrective program instructions while continuing a debugging session, the method being implemented by said program instructions and comprising the steps of:
- detecting an error in said computer application program, which is executing during a debugging session, in said computer system'"'"'s memory;
dynamically fixing program code which contains said error without terminating said debugging session; and
continuing the debugging session with said fixed program code by continuing said debugging session where said error occurred,whereby the program error was corrected without stopping the debugging session in order to recompile an entire program.
1 Assignment
0 Petitions
Accused Products
Abstract
This Continuation-In-Part describes a part of this run-time debugger operation which is designated the "Fix-and-Continue" invention. This invention permits a user to begin a debugging session wherein if an error in the code is encountered, the user can edit the corresponding source code to correct the error and then execute a "Fix and Continue" command all without leaving the debugging session. The Fix and Continue code calls the compiler to recompile the source code file with the edited text in it, receives the resulting recompiled object code file from the compiler, uses the dynamic linker to link the recompiled object code into the target application program process, patches the previous version of this same object code fie to refer to the newly recompiled code, resets any required variables and registers, resets the program counter to the line of code being executed when the error was discovered. The debugger then continues in the debug session thereby saving the time it would ordinarily take to quit the debug session, relink and reload the target program and start the debug session once again.
-
Citations
20 Claims
-
1. A method for debugging a computer application program on a computer system which includes a processor, a program counter, memory and program instructions, the method being designed to allow generation and insertion of corrective program instructions while continuing a debugging session, the method being implemented by said program instructions and comprising the steps of:
-
detecting an error in said computer application program, which is executing during a debugging session, in said computer system'"'"'s memory; dynamically fixing program code which contains said error without terminating said debugging session; and continuing the debugging session with said fixed program code by continuing said debugging session where said error occurred, whereby the program error was corrected without stopping the debugging session in order to recompile an entire program. - View Dependent Claims (2, 3, 4, 17)
-
-
5. A method for debugging a computer application program on a computer system which includes a processor, a program counter, memory and program instructions, the method being designed to allow generation and insertion of corrective program instructions while continuing a debugging session, the method being implemented by said program instructions and comprising the steps of:
-
loading a debugger computer program into said memory; loading source code and object code for a compiled computer application program into said memory; requesting said debugger computer program to begin a run-me execution of said compiled computer application program object code; executing a fix and continue routine in said debugger computer program if an error is found, wherein a source code file containing said error is edited, recompiled and recompiled object code for said source code file containing said error is dynamically patched into previously loaded object code of said compiled computer application program; and said debugger restarting said run-time execution of said compiled computer application program object code which has been edited wherein said restart occurs in an area of said recompiled object code where said error was detected, whereby the program error was corrected without stopping the debugging session in order to recompile an entire program. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer system for debugging a computer application program, the system being designed to allow generation and insertion of corrective program instructions dynamically into the computer application program while continuing a debugging session, the computer system comprising:
-
a processor having a program counter, memory and program instructions; a debugger in said memory configured to detect an error in said computer application program during a debugging session, said debugging session executed by said processor; and said debugger comprising; a fix subsystem for dynamically repairing program code which contains said error without terminating said debugging session; and a continue subsystem for restarting said debugging session where said error occurred using said repaired program code, whereby the program error was corrected without stopping the debugging session in order to recompile an entire program. - View Dependent Claims (14, 15, 16)
-
-
18. A system for debugging a computer application program on a computer which includes a processor, a program counter, memory and program instructions, the system being designed to allow generation and insertion of corrective program instructions dynamically into the computer application program while continuing a debugging session, the system comprising:
-
means for detecting an error in said computer application program during a debugging session; means for dynamically fixing program code which contains said error without terminating said debugging session; and means for continuing the debugging session with said fixed program code by restarting said debugging session where said error occurred, whereby the program error was corrected without stopping the debugging session in order to recompile an entire program.
-
-
19. A method for debugging a computer application program on a computer system which includes a processor, a program counter, memory and program instructions, the method being designed to allow generation and insertion of corrective program instructions dynamically into the computer application program while continuing a debugging session, the method being implemented by said program instructions in said memory and comprising the steps of:
-
detecting an error in said computer application program during a debugging session; dynamically fining program code which contains said error without terminating said debugging session, said fixing operation permitting a user to specify that debug information should be added and permitting said user to modify a line of code to be fixed; and continuing the debugging session with said fixed program code by restarting said debugging session where said error occurred, whereby the program error was corrected without stopping the debugging session in order to recompile an entire program.
-
-
20. A computer program embodied on a computer-readable medium for enabling a system for debugging a computer application program, the system being designed to allow generation and insertion of corrective program instructions dynamically into the computer application program while continuing a debugging session, comprising:
-
a processor having a program counter, memory and program instructions; a debugger in said memory configured to detect an error in said computer application program during a debugging session, said debugging session executed by said processor; and said debugger comprising; a fix subsystem which will allow a user to repair program code which contains said error without terminating said debugging session, said fix subsystem configured to permit said user to specify that debug information should be added and to permit said user to modify a line of code to be fixed; and a continue subsystem which will allow the user to restart said debugging session where said error occurred using said repaired program code, whereby the program error was corrected without stopping the debugging session in order to recompile an entire program.
-
Specification