Electrical computers and digital processing systems: processing – Processing control – Specialized instruction processing in support of testing,...
Reexamination Certificate
1999-01-04
2001-04-17
Eng, David Y. (Department: 2155)
Electrical computers and digital processing systems: processing
Processing control
Specialized instruction processing in support of testing,...
C709S203000
Reexamination Certificate
active
06219782
ABSTRACT:
FIELD OF THE INVENTION
This invention relates to the field of software debugging systems and in particular to a system for multiple users to independently and simultaneously debug a common server based software target.
PROBLEM
Existing software debugging techniques are readily available for single user debugging of a single target software system. The typical debugging tool is a static debug tool that requires exclusive control of the target software being debugged. Single user debugging means that only one user can have active debugging access to the target software at a time. A static debug tool is one that facilitates either controlled stepwise execution of individual program instructions and/or periodic breakpoint execution of target software sections. Using either the stepwise or periodic breakpoint debugging technique, normal execution of the target software is frozen at prescribed execution intervals to allow user inspection of the target system's internal data including, but not limited to, memory locations, registers, and/or instruction address sequences. The user debugging the target software determines whether the target software is operating as expected by inspecting the memory and registers of the halted target software. Such a debugging technique presents a variety of difficulties for multiple users simultaneously debugging a common software target.
For example, one key problem is that single user debugging techniques are limiting in that only one user can uninterruptedly debug the target software at a time due to the highly intrusive nature of the existing debug tools. Even if the user debugging a target software is only debugging one small object of the target software, processing for the entire target software is halted when a prescribed execution interval or breakpoint is reached. The target software does not resume executing subsequent instructions until the controlling user manually releases the target software. Multiple users can only be afforded an uninterruptable debugging environment if the target software is duplicated on an independent debugging environment for each one of the multiple users.
For the above reasons a multiple user debugging tool is desirable that allows multiple user access to simultaneously and uninterruptedly debug a common software target. A multiple user debugging tool of this type has heretofore not been realized prior to the present disclosure.
SUMMARY
The above identified problems are solved and a technical advance achieved in the field by the multiple user software debugging system of the present invention. The multiple user software debugging system facilitates a minimally intrusive debugging environment, preferably a client and server computing environment, that controls execution of target software by participating as part of the actual target software system activity concurrently with, but without directly affecting, other of the multiple users of the same target software. The multiple user software debugging system comprises integrating at least one of a plurality of debug interface calls into the target software itself. The target software is a server based computer program. Additional steps include loading a debug interface library containing a plurality of debug interfaces for use by the target software and the debug engine, wherein at least one of the plurality of debug interfaces is loaded as an operational component of the target software. A final step includes executing the target software under minimally intrusive control of the debug engine by way of the debug interfaces in a concurrent manner for each of the multiple users.
The debugging system establishes at least one thread connection for communication between said target software and said debug engine. The thread is used during target software execution by calling at least one of the plurality of debug interfaces from the target software for each executable target software statement to notify the debug engine of target software events, and retrieving internal target software operating information by said debug engine. The debug interfaces available to the target software and the debug engines include, but are not limited to, an initialization interface, an execution interface, a symbol handling interface, an error handling and termination interface, and a resource management interface.
REFERENCES:
patent: 4231087 (1980-10-01), Hunsberger et al.
patent: 5113523 (1992-05-01), Colley et al.
patent: 5450586 (1995-09-01), Kuzara et al.
patent: 5473754 (1995-12-01), Folwell et al.
patent: 5557539 (1996-09-01), Fitch
patent: 5561763 (1996-10-01), Eto et al.
patent: 5612898 (1997-03-01), Huckins
patent: 5615332 (1997-03-01), Yamamoto
patent: 5652869 (1997-07-01), Herdeg et al.
patent: 5787245 (1998-07-01), You
patent: 5794046 (1998-08-01), Meier et al.
patent: 5812768 (1998-09-01), Page et al.
patent: 5815653 (1998-09-01), You et al.
patent: 5819092 (1998-10-01), Ferguson et al.
patent: 5819093 (1998-10-01), Davidson et al.
patent: 5844553 (1998-12-01), Hao et al.
Khan Azeemullah
Noyama Glenn T.
Pennell Andrew Michael
Eng David Y.
Microsoft Corporation
Woodcock Washburn Kurtz Mackiewicz & Norris LLP
LandOfFree
Multiple user software debugging system does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Multiple user software debugging system, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Multiple user software debugging system will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2496829