System and method for a distributed debugger for debugging distributed application programs
First Claim
1. A distributed debugger system for debugging a distributed target application system which resides on a local host computer and one or more remote host computers, the distributed debugger system comprising:
- a debugger-GUI and one or more debugger engines (hereinafter termed "dbx engines"), said debugger-GUI providing an interface mechanism for communicating with said dbx engines, and for communicating with a user of said debugger system, wherein said dbx engines may reside on said local and remote host computers;
a communications mechanism for use by said dbx engines and said debugger-GUI in sending messages to and receiving messages from each other; and
a remote dbx engine which is one of said one or more dbx engines and which is residing on a host computer remote from said local host computer, said remote dbx engine connected to said debugger-GUI by means of said communication mechanism, said remote dbx engine co-operating with said debugger-GUI but capable of ignoring any intermediate Interface Definition Language ("IDL") generated code mechanisms which connect local and remote sections of said target application system but are not part of a primary functionality of said target application system, permitting said user to debug said distributed target application system without being presented any intermediate IDL generated code mechanisms which connect local and remote sections of the target application system and thereby providing an illusion that the user is debugging a single process application.
0 Assignments
0 Petitions
Accused Products
Abstract
A system and method for providing a distributed debugger system for a distributed target computer application are disclosed wherein the programmer/developer of the application can be at one host machine and wherein the application being developed makes use of objects and object implementations which may be located on a different host machine which is unknown to the programmer/developer. The system and method provides solutions to problems which are encountered in trying to debug a new application which is associated with the use of objects in a widely distributed, object oriented, client-server system. In a distributed object environment, requests and replies are made through an Object Request Broker (ORB) that is aware of the locations and status of objects. One architecture which is suitable for implementing such an ORB is provided by the Common Object Request Broker Architecture (CORBA) specification. The distributed debugger system disclosed herein is designed to function in a CORBA compliant distributed system.
-
Citations
29 Claims
-
1. A distributed debugger system for debugging a distributed target application system which resides on a local host computer and one or more remote host computers, the distributed debugger system comprising:
-
a debugger-GUI and one or more debugger engines (hereinafter termed "dbx engines"), said debugger-GUI providing an interface mechanism for communicating with said dbx engines, and for communicating with a user of said debugger system, wherein said dbx engines may reside on said local and remote host computers; a communications mechanism for use by said dbx engines and said debugger-GUI in sending messages to and receiving messages from each other; and a remote dbx engine which is one of said one or more dbx engines and which is residing on a host computer remote from said local host computer, said remote dbx engine connected to said debugger-GUI by means of said communication mechanism, said remote dbx engine co-operating with said debugger-GUI but capable of ignoring any intermediate Interface Definition Language ("IDL") generated code mechanisms which connect local and remote sections of said target application system but are not part of a primary functionality of said target application system, permitting said user to debug said distributed target application system without being presented any intermediate IDL generated code mechanisms which connect local and remote sections of the target application system and thereby providing an illusion that the user is debugging a single process application.
-
-
2. A distributed debugger system for debugging a distributed target application system which resides on a local host computer and one or more remote host computers, the distributed debugger system comprising:
-
a debugger-GUI and one or more debugger engines (hereinafter termed "dbx engines"), said debugger-GUI providing an interface mechanism for communicating with said dbx engines, wherein said dbx engines may reside on said local and remote host computers, and for communicating with a user of said debugger system; a communications mechanism for use by said dbx engines and said debugger-GUI in sending messages to and receiving messages from each other; and a dbx Wrapper-Factory mechanism for use by said debugger-GUI to create a new dbx engine in a remote host computer for use in debugging a part of said target application system which resides on said remote host computer, said dbx Wrapper-Factory mechanism operable to generate said new dbx engine both at the initialization and during the course of execution of said target application system, whereby the creation of said new dbx engine can be postponed until said new dbx engine is immediately needed by debugger-GUI. - View Dependent Claims (3, 4, 5, 6, 7, 8)
-
-
9. A dbx engine for use in a distributed debugger system for debugging a distributed target application system, said distributed target application system residing on a local host computer and one or more remote host computers, the dbx engine comprising:
-
a dstep mechanism for ignoring (that is, "stepping over") any intermediate Interface Definition Language ("IDL") generated code mechanisms which connect local and remote sections of said distributed target application system but which are not part of said distributed target application system itself; and a remote surrogate code mechanism for determining which intermediate IDL generated code mechanisms connecting local and remote sections of the distributed target application system should be ignored. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A dbx engine for use in a distributed debugger system for debugging a distributed target application system, said distributed target application system residing on a local host computer and one or more remote host computers, the dbx engine comprising:
-
a dstep mechanism for ignoring (that is, "stepping over") any intermediate Interface Definition Language ("IDL") generated code mechanisms which connect local and remote sections of said target application system but which are not part of said target application system itself; a remote surrogate code test mechanism for determining which intermediate Interface Definition Language ("IDL") generated code mechanisms which connect local and remote sections of said target application system should be ignored; a remote breakpoint setting mechanism thereby permitting a user on a local host computer to set a breakpoint in a function of the distributed target application system which is actually implemented in a remote host computer; a GetImplementation mechanism for locating a host ID and process ID (PID) of a server for any designated object; an IdentifyRemoteFunction mechanism for identifying whether a remote dbx engine is running and if not for creating and attaching a dbx engine to a remote target function by using the facilities of a dbx WrapperFactory object; and a multiple dbx engine synchronizer mechanism for permitting dbx engines to communicate with each other.
-
-
15. A computer implemented method for modifying a standard dbx engine for use in a distributed debugger system for debugging a distributed target application system, said distributed target application system residing on a local host computer and one or more remote host computers, the computer implemented method comprising the steps of:
-
providing said standard dbx engine which has capabilities equivalent to those of a SPARCworks dbx engine; under computer control providing to said standard dbx engine a dstep mechanism for ignoring (that is, "stepping over") any intermediate Interface Definition Language ("IDL") generated code mechanisms which connect local and remote sections of said target application system but which are not part of said target application system itself; and adding to said dbx engine, at any point during the course of execution of said target application system an IdentifyRemoteFunction mechanism for identifying whether a remote dbx engine is running and, if not for creating and attaching a dbx engine to a remote target function by using the facilities of a dbx WrapperFactory object. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A computer implemented method for modifying a standard dbx engine for use in a distributed debugger system for debugging a distributed target application system, said distributed target application system residing on a local host computer and one or more remote host computers, the computer implemented method comprising the steps of:
-
providing said standard dbx engine which has capabilities equivalent to those of a SPARCworks dbx engine; and under computer control providing to said standard dbx engine a dstep mechanism for ignoring (that is, "stepping over") any intermediate Interface Definition Language ("IDL") generated code mechanisms which connect local and remote sections of said target application system but which are not part of said target application system itself; providing to said standard dbx engine a remote surrogate code test mechanism for determining which intermediate Interface Definition Language ("IDL") generated code mechanisms which connect local and remote sections of said target application system should be ignored; providing to said standard dbx engine a remote breakpoint setting mechanism thereby permitting a user on a local host computer to set a breakpoint in a function of the distributed target application system which is actually implemented in a remote host computer; providing to said standard dbx engine a GetImplementation mechanism for locating a host ID and process ID (PID) of a server for any designated object; providing to said standard dbx engine an IdentifyRemoteFunction mechanism for identifying whether a remote dbx engine is running and if not for creating and attaching a dbx engine to a remote target function by using the facilities of a dbx WrapperFactory object; and providing to said standard dbx engine a multiple dbx engine synchronizer mechanism for permitting dbx engines to communicate with each other.
-
-
21. A computer implemented method for producing a distributed debugger system for debugging a distributed target application system which target application system resides on a local host computer and one or more remote host computers, the computer implemented method comprising the steps of:
-
providing in a local host computer a debugger-GUI and one or more debugger engines (hereinafter termed "dbx engines"), said debugger-GUI providing an interface mechanism for communicating with said dbx engines, and for communicating with a user of said debugger system; providing a communication mechanism for use by said dbx engines and said debugger-GUI in sending messages to and receiving messages from each other; and providing a remote dbx engine which is one of said one or more dbx engines and which is residing on a host computer remote from said local host computer, said remote dbx engine connected to said debugger-GUI by means of said communication mechanism, said remote dbx engine being able, under direction from said debugger-GUI, to attach itself to a section of said distributed target application system which is residing on said remote host computer for purposes of debugging said section of said distributed target application system which is residing on said remote host computer, said remote dbx engine co-operating with said debugger-GUI while ignoring any intermediate Interface Definition Language ("IDL") generated code mechanisms which connect local and remote sections of said target application system but which are not part of said target application system itself, thereby permitting said user to debug said distributed target application system with an illusion that the user is debugging a single process application.
-
-
22. A computer implemented method for producing a distributed debugger system for debugging a distributed target application system which resides on a local host computer and one or more remote host computers, the computer implemented method comprising the steps of:
-
providing a debugger-GUI and one or more debugger engines (hereinafter termed "dbx engines"), said debugger-GUI providing an interface mechanism for communicating with said dbx engines, wherein said dbx engines may reside on said local and remote host computers, and for communicating with a user of said debugger system; providing a communications mechanism for use by said dbx engines and said debugger-GUI in sending messages to and receiving messages from each other; and providing a dbx Wrapper-Factory mechanism for use by said debugger-GUI to create a new dbx engine in a remote host computer for use in debugging a part of said target application system which resides on said remote host computer, said dbx Wrapper-Factory mechanism operable to generate said new dbx engine both at the initialization and during the course of execution of said target application system, whereby the creation of said new dbx engine can be postponed until said new dbx engine is immediately needed by debugger-GUI. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
-
29. A computer-implemented method in a distributed computing environment of creating processes and communicating with said processes in said distributed computer environment, comprising the following steps:
-
a. a client process determining if services which are requested are remote; b. if said client process determines said services are remote, then determining a remote location at which said services are located; c. said client process sending a message to a server process having said services at said remote location to instruct said server to establish communications with said client process; d. said server process spawning [a] an interface process for communicating with said client process; e. said server process suspending operation until said interface process has attached to said server process; f. said interface process attempting to attach to said server process; g. if said interface process cannot attach to said server process, then said interface process alerting said client process, otherwise, said client process attaching to said server process and alerting said client process that said attachment has been successful; h. said client process communicating with said server process via said interface process i. said interface process receiving a quit command; and j. said interface process responding to said quit command by detaching from said server process and subsequently deleting itself, execution of said server process being maintained subsequent to said interface process detaching and deleting itself.
-
Specification