Techniques for debugging computer programs involving multiple computing machines
First Claim
1. A method for debugging a computer program that includes a plurality of modules executing on a plurality of machines, the method comprising the steps of:
- receiving, at a first unifying component, first data from a first machine of the plurality of machines, wherein the first data indicates debugging information generated by the first machine;
receiving, at the first unifying component, second data from a second unifying component, wherein the second data is debugging information that the second unifying component generated based on debugging data that the second unifying component received from a subset of the plurality of machines, wherein said subset of the plurality of the machines includes two or more machines;
the first unifying component forming, based on the first data and the second data, third data indicating a single integrated representation of debugging information for the computer program;
sending, from the first unifying component, the third data to a debugger process for presentation to a user; and
wherein the debugger process is separate from the first unifying component and the second unifying component; and
wherein the third data appears to the debug process as if the third data were debug information from a single machine.
3 Assignments
0 Petitions
Accused Products
Abstract
Techniques for debugging a computer program that includes multiple modules executing on multiple machines include receiving, at a unifying component, first data from a first machine. The first data indicates debugging information generated by the first machine. Second data is also received at the unifying component from a second machine. The second data indicates debugging information generated by the second machine. Based on the first data and the second data, third data is formed indicating a single integrated representation of debugging information for the computer program. The unifying component allows debugging information from several machines to be integrated and then presented to a user through a single debugger client.
105 Citations
28 Claims
-
1. A method for debugging a computer program that includes a plurality of modules executing on a plurality of machines, the method comprising the steps of:
-
receiving, at a first unifying component, first data from a first machine of the plurality of machines, wherein the first data indicates debugging information generated by the first machine; receiving, at the first unifying component, second data from a second unifying component, wherein the second data is debugging information that the second unifying component generated based on debugging data that the second unifying component received from a subset of the plurality of machines, wherein said subset of the plurality of the machines includes two or more machines; the first unifying component forming, based on the first data and the second data, third data indicating a single integrated representation of debugging information for the computer program; sending, from the first unifying component, the third data to a debugger process for presentation to a user; and wherein the debugger process is separate from the first unifying component and the second unifying component; and wherein the third data appears to the debug process as if the third data were debug information from a single machine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for debugging a computer program that includes a plurality of modules executing on a plurality of machines, the method comprising the steps of:
-
receiving, at a first unifying component from a debugger process that is separate from the first unifying component, a first message that specifies a debugging operation associated with a request set of at least one of an instruction and an object of the computer program; in response to receiving the first message, determining at the first unifying component that a first machine of the plurality of machines is associated with a first module of the plurality of modules, which module includes at least one member of the request set; based on the first message, generating a second message indicating the debugging operation associated with the at least one member; sending the second message from the first unifying component to the first machine; determining at the first unifying component that a second unifying component, which generates unified debugging data based on debugging data received from two or more modules, is associated with a subset of the plurality of modules, which subset includes at least a second member of the request set; based on the first message, generating a third message indicating the debugging operation associated with the at least second member; and sending the third message from the first unifying component to the second unifying component. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A system for debugging a computer program comprising a plurality of modules, the system comprising:
-
a plurality of machines, each machine for executing a set of instructions from one module of the plurality of modules and for sending debugging information about the set of instructions in response to requests for debugging information; a debugging process for sending requests for debugging information, for receiving debugging information, and for presenting debugging information to a user of the system; a first unifying component, separate from the debugger process, for sending each request of the requests for debugging information to a particular machine of the plurality of machines, for generating first integrated debugging information based on the debugging information sent by the plurality of machines in response to the requests, and for sending the first integrated debugging information to the debugging process; and a second unifying component for receiving, from the first unifying component, a subset of the requests for debugging information from a subset of the plurality of machines, for generating second integrated debugging information based on the debugging information sent by the subset of the plurality of machines in response to the subset of requests, and for sending the second integrated debugging information to the first unifying component; wherein a first module of the plurality of modules invokes a procedure of a second module of the plurality of modules, wherein the first module executes on the particular machine, and wherein the second module executes on a machine that is separate from the particular machine. - View Dependent Claims (18)
-
-
19. A computer-readable storage medium for debugging a computer program that includes a plurality of modules executing on a plurality of machines, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
receiving, at a first unifying component, first data from a first machine of the plurality of machines, wherein the first data indicates debugging information generated by the first machine; receiving, at the first unifying component, second data from a second unifying component wherein the second data is debugging information that the second unifying component generated based on debugging data that the second unifying component received from a subset of the plurality of machines, wherein said subset of the plurality of the machines includes two or more machines; the first unifying component forming, based on the first data and the second data, third data indicating a single integrated representation of debugging information for the computer program; sending, from the first unifying component, the third data to a debugger process for presentation to a user; and wherein the debugger process is separate from the first unifying component and the second unifying component; and wherein the third data appears to the debug process as if the third data were debug information from a single machine. - View Dependent Claims (20, 21)
-
-
22. A computer-readable storage medium for debugging a computer program that includes a plurality of modules executing on a plurality of machines, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
receiving, at a first unifying component from a debugger process that is separate from the first unifying component, a first message that specifies a debugging operation associated with a request set of at least one of an instruction and an object of the computer program; in response to receiving the first message, determining at the first unifying component that a first machine of the plurality of machines is associated with a first module of the plurality of modules, which module includes at least one member of the request set; based on the first message, generating a second message indicating the debugging operation associated with the at least one member; sending the second message from the first unifying component to the first machine determining at the first unifying component that a second unifying component, which generates unified debugging data based on debugging data received from two or more modules, is associated with a subset of the plurality of modules, which subset includes at least a second member of the request set; based on the first message, generating a third message indicating the debugging operation associated with the at least second member; and sending the third message from the first unifying component to the second unifying component. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A method for debugging a computer program that includes a plurality of modules executing on a plurality of machines, the method comprising the steps of:
-
receiving, at a first unifying component, first data from a first machine of the plurality of machines, wherein the first data indicates debugging information generated by the first machine, wherein a first module of the plurality of modules executes on the first machine; receiving, at the first unifying component, second data from a second machine of the plurality of machines, wherein the second data indicates debugging information generated by the second machine, wherein the second machine is separate from the first machine, wherein a second module of the plurality of modules executes on the second machine, wherein the first module invokes a procedure of the second module; the first unifying component forming, based on the first data and the second data, third data indicating a single integrated representation of debugging information; receiving, at a second unifying component that is separate from the first unifying component, the third data from the first unifying component; receiving, at the second unifying component, fourth data from a third machine of the plurality of machines, wherein the fourth data indicates debugging information generated by the third machine, wherein the third machine is separate from the first and second machines; and the second unifying component forming, based on the third data and the fourth data, fifth data indicating a single integrated representation of debugging information for the computer program.
-
-
28. A computer-readable storage medium for debugging a computer program that includes a plurality of modules executing on a plurality of machines, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
receiving, at a first unifying component, first data from a first machine of the plurality of machines indicating debugging information generated by the first machine, wherein a first module of the plurality of modules executes on the first machine; receiving, at the first unifying component, second data from a second machine of the plurality of machines indicating debugging information generated by the second machine, wherein the second machine is separate from the first machine, wherein a second module of the plurality of modules executes on the second machine, wherein the first module invokes a procedure of the second module; forming, by the first unifying component, based on the first data and the second data, third data indicating a single integrated representation of debugging information; receiving at a second unifying component that is separate from the first unifying component, the third data from the first unifying component indicating debugging information integrated by the first unifying component; and receiving, at the second unifying components fourth data from a third machine of the plurality of machines indicating debugging information generated by the third machine, wherein the third machine is separate from the first and second machines; forming, by the second unifying component, based on the first data and the second data, fifth data indicating a single integrated representation of debugging information for the computer program.
-
Specification