Debug watch mechanism and method for debugging a computer...

Error detection/correction and fault detection/recovery – Data processing system error or fault handling – Reliability and availability

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C714S038110, C714S048000, C714S047300, C714S015000, C714S016000, C712S227000, C706S046000, C705S001100, C713S002000, C713S152000

Reexamination Certificate

active

06295613

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Technical Field
This invention generally relates to computer programming and more specifically relates to a mechanism and method for debugging a computer program.
2. Background Art
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware, such as semiconductors and circuit boards, and software, also known as computer programs. As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
As the sophistication and complexity of computer software increase, the more difficult the software is to debug. Debugging is the process of finding problems, or bugs, during the development of a computer program. One way of debugging a computer program is to configure a “watch function” for a variable in the computer program. Borland, a well-known software company, defines one type of watch function that returns the value for a specified variable to display to a user at any stop point. A watch in this context will simply display to the user the variable value each time the program is stopped. Thus, if a programmer is executing one instruction at a time to single-step through the execution of a computer program, the watch function makes the value of the watched variable available to the programmer when the execution is stopped after each instruction.
A different watch finction is also known in the art that allows a user to specify a watched variable, and any change to the variable will cause the execution of the computer program to halt. However, it is not very useful to have the program halt on each and every change to a variable when a variable may be legally changed thousands or millions of times. Trying to isolate a single change due to a bug from a vast number of expected changes is nearly impossible using this prior art watch. Furthermore, these prior art watch functions cannot distinguish between different threads in a multi-process environment.
Many modern computer systems provide a multi-process environment, which allows the computer system to execute multiple processes in parallel. One specific type of computer system that is capable of executing multiple processes is known as a multi-threaded computer system. In a multi-threaded computer system, multiple threads of control are available to the operating system. The operating system assigns different threads to different processes. Modern debugging tools generally do not have a way to distinguish operations on variables by a particular thread from operations on those variables by a different thread.
Without a mechanism for distinguishing operations on a variables by one thread from another during the debugging of a computer program, certain bugs will remain very difficult to detect, resulting in the release of computer software to the public that contains bugs. Buggy software can cost software developers millions of dollars to correct, and can dilute the goodwill of the company in the eyes of the purchaser.
DISCLOSURE OF INVENTION
According to the present invention, a watch signature for a debug watch mechanism is defined that indicates one or more allowable events, which represent allowable accesses to a watched variable. The allowed accesses implicitly include thread information by limiting the allowable operations to a single thread that first performs an allowed operation. Any operations on the watched variable that are caused by a different thread, and any operations that are caused by the same thread other than those specified in the watch signature will create a notification that an unauthorized operation on the watched variable has occurred. The debug watch mechanism of the present invention thus does not notify the user for expected operations on the variable, but provides notification for other events that do not fall within the anticipated behavior of the computer program as specified by the watch signature.
The foregoing and other features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings.


REFERENCES:
patent: 5119377 (1992-06-01), Cobb et al.
patent: 5319645 (1994-06-01), Bassi et al.
patent: 5526485 (1996-06-01), Brodsky
patent: 5590329 (1996-12-01), Goodnow et al.
patent: 5608644 (1997-03-01), DeBacker
patent: 5608867 (1997-03-01), Ishihara
patent: 5784552 (1998-07-01), Bishop et al.
patent: 6028999 (2000-02-01), Pazel
patent: 6094729 (2000-07-01), Mann

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

Debug watch mechanism and method for debugging a computer... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Debug watch mechanism and method for debugging a computer..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Debug watch mechanism and method for debugging a computer... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2439765

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