Online debugging and tracing system and method

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06311326

ABSTRACT:

BACKGROUND OF THE INVENTION
The invention relates generally to source code debugging methods and apparatus, and in particular, to the debugging of software programs using trace points set using a debugging tool.
As computer programs become increasingly complex, the programs will, more likely than not, contain errors or “bugs ” that prevent the proper performance and operation of the program in its intended manner. The program is then debugged, which is the process of locating and correcting the errors in the program. In complex programs, the debugging process be quite difficult and as a result one approach to debugging software uses the insertion of break points at locations within the code. The execution of the source code program then halts whenever a break point is encountered to allow the programmer to observe the state of certain variables and, accordingly, the behavior of the program at the break point.
In certain applications, stopping the program at a break point can be quite disruptive to the system. Thus, for example, in a large shared data storage subsystem such as the EMC Symmetrix series of products, halting the program in effect stops the entire data reading, writing, and caching process. In this instance, not only can the flow of data be disrupted for on the order of several minutes, or more, but the behavior of the system, and hence the analysis of an error, can be completely masked by the system stoppage because, for example, other external subsystems may then go into a recovery mode.
It has been known to store data relating to trace events in buffer memories within the Symmetrix device for later analysis. This approach has the advantage of not interrupting the system while at the same time collecting data, as necessary, for later review and analysis. Such a system typically does not enable the user to dynamically alter or change the system software and trace points, or to contemporaneously analyze the system software as a program continues.
As a result, in accordance with the present invention, a debugging system tool and method can be provided which enable immediate and certain interaction, on line, with the software program operating, for example, in a large shared data storage system. In addition, the method and apparatus of the current invention advantageously provide online access to debug the system while, at the same time, not significantly disrupting operation of the system so as to mask any error occurring in the operation of the source code.
SUMMARY OF THE INVENTION
The invention relates to a method and apparatus for online debugging software running on a target machine. The method features defining trace point locations (addresses) and data and variables to be collected at those trace points in the software at a host machine; sending the trace point locations and variables, for example in a debugging script, to the target machine, maintaining a stub program in the target machine to perform the debugging script, collecting the data and variables at the predefined trace points, using the stub program, the data representing variables identified by the host machine debugging script when a trace point is reached, and sending the collected data, online, at the request of the host machine, without significantly interrupting or stopping operation of the target machine. In a particular embodiment, the target machine is a disk drive controller.
In other aspects, the invention features determining, at the target machine, using an expression evaluation, locations for each variable for which data is to be collected when a trace point is reached and passed through, the variables being originally specified by the host machine debugging script in the form of numeric expressions from a compiler symbol table. In another aspect, the trace points may be automatically set at the host machine and the variables are automatically identified at the host machine.
In another aspect, in accordance with the invention, the collected data is directed to a buffer, in the target machine, for storage; and when the buffer overflows, the data is wrapped around the buffer thereby erasing the old data and replacing it with new data. In this way, only the last frames of data are kept in the buffer.
In another aspect, the apparatus of the invention provides for debugging software (the stub) running in a target machine and comprises a host machine, elements for defining, in the host machine, trace point locations and variables to be collected by the software, circuitry for sending the trace point locations and variables to the target machine, circuitry for running a stub program in the target machine, circuitry for collecting, using the stub program, data representing the variables selected by the user on the host machine. When a trace point is reached, the circuitry sends the collected data, online, to the host machine without stopping operation of the target machine.
In yet another aspect of the invention, the apparatus is a computer implemented apparatus for debugging, from a host computer, software running in a target machine. The invention provides for software media in both the target machine and the host computer to implement the steps of defining, in the host computer, trace point locations and variables to be collected by the software on the target machine, sending the trace point locations and variables to the target machine, running a stub program in the target machine, collecting, using stub program, data representing the variables selected by the user, for example, at the host computer when a trace point is reached and passed through, and providing the collected data, online, to the host computer without stopping operation of the target machine.
The method and apparatus of the invention thus advantageously enable debugging of the target computer or disk controller with minimal disturbance to the operation of the target machine.


REFERENCES:
patent: 5127103 (1992-06-01), Hill et al.
patent: 5175856 (1992-12-01), Van Dyke et al.
patent: 5450586 (1995-09-01), Kuzara et al.
patent: 5748881 (1998-05-01), Lewis et al.
patent: 5832205 (1998-11-01), Kelly et al.
patent: 5930470 (1999-07-01), Noguchi et al.
patent: 6154856 (2000-11-01), Madduri et al.
patent: 6158045 (2000-12-01), You
patent: 6161216 (2000-12-01), Shagam
patent: 6199152 (2001-03-01), Kelly et al.
www.google.com, “AdaTEST,” Quality Checked Software, LTD. (1996), copyright of IPL Information Processing Ltd.*
www.google.com, Texas Instruments, TM370 Family EPROM/EEPROM Programming Tool (1996), Microprocessor Development Systems.*
Hunt Engineering, API and software tools for PC hosts Description and reference, (May 1998).*
Oracle 7 Enterprise Backup Utility Administrator's Guide, Chapter 8, Managing and Troubleshooting (1996).*
Andreas Danuser et al; “Was geschielt wann wo im Programm?” vol. 82, No. 35; Aug 31, 1990; pp. 48-57.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Online debugging and tracing system and method does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Online debugging and tracing system and method, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Online debugging and tracing system and method will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2597669

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.