Logic analyzer for software
DCFirst Claim
1. A method for monitoring the execution of a plurality of tasks in the memory of a target computer, said method comprising the steps of:
- coupling said target computer to a host program with a communications link;
running a plurality of tasks on said target computer, producing a plurality of contexts;
logging event data representing a plurality of events in said plurality of contexts;
uploading said event data from said target computer memory to said host program;
reconstructing a status of said tasks from said event data, and storing reconstructed data in said host program; and
displaying said status from said reconstructed data for a period of time for a plurality of said tasks on a single display,wherein said step of displaying comprisesdisplaying a list of identifiers of said plurality of contexts along a first axis of said display,displaying an indication of time progression along a second axis of said display; and
for a plurality of said identifiers, for a time period along said time progression, displaying a graphical pattern corresponding to execution in one of said plurality of contexts.
2 Assignments
Litigations
0 Petitions
Accused Products
Abstract
The present invention logs events which occur in the target software, and stores these in a buffer for periodic uploading to a host computer. Such events include the context switching of particular software tasks, and task status at such context switch times, along with events triggering such a context switch, or other events. The host computer reconstructs the real-time status of the target software from the limited event data uploaded to it. The status information is then displayed in a user-friendly manner. This provides the ability to perform a logic analyzer function on real-time software. A display having multiple rows, with one for each task or interrupt level, is provided. Along a time line, an indicator shows the status of each program, with icons indicating events and any change in status.
217 Citations
30 Claims
-
1. A method for monitoring the execution of a plurality of tasks in the memory of a target computer, said method comprising the steps of:
-
coupling said target computer to a host program with a communications link; running a plurality of tasks on said target computer, producing a plurality of contexts; logging event data representing a plurality of events in said plurality of contexts; uploading said event data from said target computer memory to said host program; reconstructing a status of said tasks from said event data, and storing reconstructed data in said host program; and displaying said status from said reconstructed data for a period of time for a plurality of said tasks on a single display, wherein said step of displaying comprises displaying a list of identifiers of said plurality of contexts along a first axis of said display, displaying an indication of time progression along a second axis of said display; and for a plurality of said identifiers, for a time period along said time progression, displaying a graphical pattern corresponding to execution in one of said plurality of contexts.
-
-
2. A method for monitoring the execution of a plurality of tasks in the memory of a target computer, said method comprising the steps of:
-
coupling said target computer to a host program with a communications link; running a plurality of tasks on said target computer, producing a plurality of contexts; logging event data representing a plurality of events in said plurality of contexts; uploading said event data from said target computer memory to said host program; reconstructing a status of said tasks from said event data, and storing reconstructed data in said host program; and displaying said status from said reconstructed data for a period of time for a plurality of said tasks on a single display, wherein said step of displaying comprises displaying a list of identifiers of said plurality of contexts along a first axis of said display, displaying an indication of time progression along a second axis of said display; and for a plurality of said identifiers, for a time period along said time progression, displaying one of a plurality of graphical patterns, each of said plurality of graphical patterns corresponding to a different task state of a task.
-
-
3. A method for monitoring the execution of a plurality of tasks in the memory of a target computer, said method comprising the steps of:
-
coupling said target computer to a host program with a communications link; running a plurality of tasks on said target computer, producing a plurality of contexts; logging event data representing a plurality of events in said plurality of contexts; uploading said event data from said target computer memory to said host program; reconstructing a status of said tasks from said event data, and storing reconstructed data in said host program; and displaying said status from said reconstructed data for a period of time for a plurality of said tasks on a single display, wherein said step of displaying comprises displaying a list of identifiers of said plurality of contexts along a first axis of said display, displaying an indication of time progression along a second axis of said display; and for a plurality of said identifiers, for a time period along said time progression, displaying an icon representing an action undertaken among said plurality of contexts. - View Dependent Claims (4, 5, 6)
-
-
7. The method of 3 wherein said method further comprises
highlighting an event icon; - and
displaying information associated with the highlighted event icon in a textual format.
- and
-
8. A method for monitoring the execution of a plurality of tasks in the memory of a target computer, said method comprising the steps of:
-
coupling said target computer to a host program with a communications link; running a plurality of tasks on said target computer, producing a plurality of contexts; logging event data representing a plurality of events in said plurality of contexts; uploading said event data from said target computer memory to said host program; reconstructing a status of said tasks from said event data, and storing reconstructed data in said host program; and displaying said status from said reconstructed data for a period of time for a plurality of said tasks on a single display, wherein said step of logging comprises storing an event identifier, a time stamp and an array of parameters in a predetermined order in a buffer, and wherein said step of logging further comprises storing event data related to the rollover of a hardware timer counter in said buffer and said step of storing a time stamp comprises storing the data count of said hardware timer counter at the time of one of said plurality of events.
-
-
9. A method for monitoring the execution of a plurality of tasks in the memory of a target computer, said method comprising the steps of:
-
coupling said target computer to a host program with a communications link; running a plurality of tasks on said target computer, producing a plurality of contexts; logging event data representing a plurality of events in said plurality of contexts; uploading said event data from said target computer memory to said host program; reconstructing a status of said tasks from said event data, and storing reconstructed data in said host program; and displaying said status from said reconstructed data for a period of time for a plurality of said tasks on a single display, wherein said steps of logging and uploading overlap, and said uploading is performed periodically.
-
-
10. A method for monitoring the execution of a plurality of tasks in the memory of a target computer, said method comprising the steps of:
-
coupling said target computer to a host program with a communications link; running a plurality of tasks on said target computer, producing a plurality of contexts; logging event data representing a plurality of events in said plurality of contexts; uploading said event data from said target computer memory to said host program; reconstructing a status of said tasks from said event data, and storing reconstructed data in said host program; and displaying said status from said reconstructed data for a period of time for a plurality of said tasks on a single display, wherein said step of logging comprises repeatedly overwriting a buffer of data and afterwards terminating said logging and said step of uploading comprises uploading the data in said buffer only after said logging is terminated.
-
-
11. A method for monitoring the execution of a plurality of tasks in the memory of a target computer, said method comprising the steps of:
-
coupling said target computer to a host program with a communications link; running a plurality of tasks on said target computer, producing a plurality of contexts; logging event data representing a plurality of events in said plurality of contexts; uploading said event data from said target computer memory to said host program; reconstructing a status of said tasks from said event data, and storing reconstructed data in said host program; and displaying said status from said reconstructed data for a period of time for a plurality of said tasks on a single display, wherein before said step of running is performed, the following steps are performed by the user; modifying the source code of one of said plurality of tasks to log event data; and compiling said modified source code to produce one of said plurality of tasks.
-
-
12. A method for monitoring the execution of a plurality of tasks in the memory of a target computer, said method comprising the steps of:
-
coupling said target computer to a host program with a communications link; running a plurality of tasks on said target computer, producing a plurality of contexts; logging event data representing a plurality of events in said plurality of contexts; uploading said event data from said target computer memory to said host program; reconstructing a status of said tasks from said event data, and storing reconstructed data in said host program; and displaying said status from said reconstructed data for a period of time for a plurality of said tasks on a single display, wherein before said step of logging is performed, the following step is performed; modifying the memory-resident image of one of said plurality of tasks to log event data.
-
-
13. A method for monitoring the execution of a plurality of tasks in the memory of a target computer, said method comprising the steps of:
-
coupling said target computer to a host program with a communications link; running a plurality of tasks on said target computer, producing a plurality of contexts; logging event data representing a plurality of events in said plurality of contexts; uploading said event data from said target computer memory to said host program; reconstructing a status of said tasks from said event data, and storing reconstructed data in said host program; and displaying said status from said reconstructed data for a period of time for a plurality of said tasks on a single display, wherein said event data comprises multi-level representations of multi-level events; and
wherein said step of reconstructing and storing comprisesgenerating single-level representations of said events from said multi-level representations, and associating each of said single-level representations with a context, said context being the context in which occurred the event represented by said each single-level representation.
-
-
14. A method for monitoring the execution of a plurality of tasks in the memory of a target computer, said method comprising the steps of:
-
coupling said target computer to a host program with a communications link; running a plurality of tasks on said target computer, producing a plurality of contexts; logging event data representing a plurality of events in said plurality of contexts; uploading said event data from said target computer memory to said host program; reconstructing a status of said tasks from said event data, and storing reconstructed data in said host program; and displaying said status from said reconstructed data for a period of time for a plurality of said tasks on a single display, wherein said event data is a time-ordered stream of representations of said events; and
wherein the information necessary to reconstruct one of said events is contained in at least two representations.
-
-
15. A method for monitoring the execution of a plurality of tasks in the memory of a target computer, said method comprising the steps of:
-
coupling said target computer to a host program with a communications link; running a plurality of tasks on said target computer, producing a plurality of contexts; logging event data representing a plurality of events in said plurality of contexts; uploading said event data from said target computer memory to said host program; reconstructing a status of said tasks from said event data, and storing reconstructed data in said host program; and displaying said status from said reconstructed data for a period of time for a plurality of said tasks on a single display, wherein said step of logging comprises logging event data related to state transitions among said plurality of contexts for a time period, wherein said event data is a time-ordered stream of representations of said events; wherein each of said plurality of contexts has a status word; wherein said host program maintains a corresponding status word for the status word of said each context; and wherein said step of reconstructing and storing comprises modifying said corresponding status word for each event which causes a task state transition in a context, and inserting a representation of said modified corresponding status word into said stream.
-
-
16. An apparatus for monitoring the execution of a plurality of tasks in the memory of a target computer, said apparatus comprising:
-
a target computer having memory, in which is located a computer program to cause said target computer to run a plurality of tasks, producing a plurality of contexts, and log event data representing a plurality of events in said plurality of contexts; a communications link; a display; and a host computer, coupled to said target computer by means of said communications link, coupled to said display and having a memory, in which is located a computer program to cause said host computer to upload said event data from said target computer memory, reconstruct a status of said plurality of tasks from said event data, and storing reconstructed data in said host computer, and display said status from said reconstructed data for a period of time for a plurality of tasks by means of graphics on said display, wherein said step of displaying comprises displaying a list of identifiers of said plurality of contexts along a first axis of said display, displaying an indication of time progression along a second axis of said display; and for a plurality of said identifiers, for a time period along said time progression, displaying a graphical pattern corresponding to execution in one of said plurality of contexts.
-
-
17. An apparatus for monitoring the execution of a plurality of tasks in the memory of a target computer, said apparatus comprising:
-
a target computer having memory, in which is located a computer program to cause said target computer to run a plurality of tasks, producing a plurality of contexts, and log event data representing a plurality of events in said plurality of contexts; a communications link; a display; and a host computer, coupled to said target computer by means of said communications link, coupled to said display and having a memory, in which is located a computer program to cause said host computer to upload said event data from said target computer memory, reconstruct a status of said plurality of tasks from said event data, and storing reconstructed data in said host computer, and display said status from said reconstructed data for a period of time for a plurality of tasks by means of graphics on said display, wherein said step of displaying comprises displaying a list of identifiers of said plurality of contexts along a first axis of said display, displaying an indication of time progression along a second axis of said display; and for a plurality of said identifiers, for a time period along said time progression, displaying one of a plurality of graphical patterns, each of said plurality of graphical patterns corresponding to a different task state of a task.
-
-
18. An apparatus for monitoring the execution of a plurality of tasks in the memory of a target computer, said apparatus comprising:
-
a target computer having memory, in which is located a computer program to cause said target computer to run a plurality of tasks, producing a plurality of contexts, and log event data representing a plurality of events in said plurality of contexts; a communications link; a display; and a host computer, coupled to said target computer by means of said communications link, coupled to said display and having a memory, in which is located a computer program to cause said host computer to upload said event data from said target computer memory, reconstruct a status of said plurality of tasks from said event data, and storing reconstructed data in said host computer, and display said status from said reconstructed data for a period of time for a plurality of tasks by means of graphics on said display, wherein said step of displaying comprises displaying a list of identifiers of said plurality of contexts along a first axis of said display, displaying an indication of time progression along a second axis of said display; and for a plurality of said identifiers, for a time period along said time progression, displaying an icon representing an action undertaken among said plurality of contexts. - View Dependent Claims (19, 20, 21)
-
-
22. The apparatus of 18 wherein said host computer memory program further comprises
highlighting an event icon; - and
displaying information associated with the highlighted event icon in a textual format.
- and
-
23. An apparatus for monitoring the execution of a plurality of tasks in the memory of a target computer, said apparatus comprising:
-
a target computer having memory, in which is located a computer program to cause said target computer to run a plurality of tasks, producing a plurality of contexts, and log event data representing a plurality of events in said plurality of contexts; a communications link; a display; and a host computer, coupled to said target computer by means of said communications link, coupled to said display and having a memory, in which is located a computer program to cause said host computer to upload said event data from said target computer memory, reconstruct a status of said plurality of tasks from said event data, and storing reconstructed data in said host computer, and display said status from said reconstructed data for a period of time for a plurality of tasks by means of graphics on said display, wherein said step of logging comprises storing an event identifier, a time stamp and an array of parameters in a predetermined order in a buffer, and wherein said step of logging further comprises storing event data related to the rollover of a hardware timer counter in said buffer and said step of storing a time stamp comprises storing the data count of said hardware timer counter at the time of one of said plurality of events.
-
-
24. An apparatus for monitoring the execution of a plurality of tasks in the memory of a target computer, said apparatus comprising:
-
a target computer having memory, in which is located a computer program to cause said target computer to run a plurality of tasks, producing a plurality of contexts, and log event data representing a plurality of events in said plurality of contexts; a communications link; a display; and a host computer, coupled to said target computer by means of said communications link, coupled to said display and having a memory, in which is located a computer program to cause said host computer to upload said event data from said target computer memory, reconstruct a status of said plurality of tasks from said event data, and storing reconstructed data in said host computer, and display said status from said reconstructed data for a period of time for a plurality of tasks by means of graphics on said display, wherein said steps of logging and uploading overlap, and said uploading is performed periodically.
-
-
25. An apparatus for monitoring the execution of a plurality of tasks in the memory of a target computer, said apparatus comprising:
-
a target computer having memory, in which is located a computer program to cause said target computer to run a plurality of tasks, producing a plurality of contexts, and log event data representing a plurality of events in said plurality of contexts; a communications link; a display; and a host computer, coupled to said target computer by means of said communications link, coupled to said display and having a memory, in which is located a computer program to cause said host computer to upload said event data from said target computer memory, reconstruct a status of said plurality of tasks from said event data, and storing reconstructed data in said host computer, and display said status from said reconstructed data for a period of time for a plurality of tasks by means of graphics on said display, wherein said step of logging comprises repeatedly overwriting a buffer of data and afterwards terminating said logging and said step of uploading comprises loading the data in said buffer only after said logging is terminated.
-
-
26. An apparatus for monitoring the execution of a plurality of tasks in the memory of a target computer, said apparatus comprising:
-
a target computer having memory, in which is located a computer program to cause said target computer to run a plurality of tasks, producing a plurality of contexts, and log event data representing a plurality of events in said plurality of contexts; a communications link; a display; and a host computer, coupled to said target computer by means of said communications link, coupled to said display and having a memory, in which is located a computer program to cause said host computer to upload said event data from said target computer memory, reconstruct a status of said plurality of tasks from said event data, and storing reconstructed data in said host computer, and display said status from said reconstructed data for a period of time for a plurality of tasks by means of graphics on said display, wherein before said step of running is performed, the following steps are performed by the user; modifying the source code of one of said plurality of tasks to log event data; and compiling said modified source code to produce one of said plurality of tasks.
-
-
27. An apparatus for monitoring the execution of a plurality of tasks in the memory of a target computer, said apparatus comprising:
-
a target computer having memory, in which is located a computer program to cause said target computer to run a plurality of tasks, producing a plurality of contexts, and log event data representing a plurality of events in said plurality of contexts; a communications link; a display; and a host computer, coupled to said target computer by means of said communications link, coupled to said display and having a memory, in which is located a computer program to cause said host computer to upload said event data from said target computer memory, reconstruct a status of said plurality of tasks from said event data, and storing reconstructed data in said host computer, and display said status from said reconstructed data for a period of time for a plurality of tasks by means of graphics on said display, wherein before said step of logging is performed, the following step is performed; modifying the memory-resident image of one of said plurality of tasks to log event data.
-
-
28. An apparatus for monitoring the execution of a plurality of tasks in the memory of a target computer, said apparatus comprising:
-
a target computer having memory, in which is located a computer program to cause said target computer to run a plurality of tasks, producing a plurality of contexts, and log event data representing a plurality of events in said plurality of contexts; a communications link; a display; and a host computer, coupled to said target computer by means of said communications link, coupled to said display and having a memory, in which is located a computer program to cause said host computer to upload said event data from said target computer memory, reconstruct a status of said plurality of tasks from said event data, and storing reconstructed data in said host computer, and display said status from said reconstructed data for a period of time for a plurality of tasks by means of graphics on said display, wherein said event data comprises multi-level representations of multi-level events; and wherein said step of reconstructing and storing comprises generating single-level representations of said events from said multi-level representations, and associating each of said single-level representations with a context, said context being the context in which occurred the event represented by said each single-level representation.
-
-
29. An apparatus for monitoring the execution of a plurality of tasks in the memory of a target computer, said apparatus comprising:
-
a target computer having memory, in which is located a computer program to cause said target computer to run a plurality of tasks, producing a plurality of contexts, and log event data representing a plurality of events in said plurality of contexts; a communications link; a display; and a host computer, coupled to said target computer by means of said communications link, coupled to said display and having a memory, in which is located a computer program to cause said host computer to upload said event data from said target computer memory, reconstruct a status of said plurality of tasks from said event data, and storing reconstructed data in said host computer, and display said status from said reconstructed data for a period of time for a plurality of tasks by means of graphics on said display, wherein said event data is a time-ordered stream of representations of said events; and wherein the information necessary to reconstruct one of said events is contained in at least two representations.
-
-
30. An apparatus for monitoring the execution of a plurality of tasks in the memory of a target computer, said apparatus comprising:
-
a target computer having memory, in which is located a computer program to cause said target computer to run a plurality of tasks, producing a plurality of contexts, and log event data representing a plurality of events in said plurality of contexts; a communications link; a display; and a host computer, coupled to said target computer by means of said communications link, coupled to said display and having a memory, in which is located a computer program to cause said host computer to upload said event data from said target computer memory, reconstruct a status of said plurality of tasks from said event data, and storing reconstructed data in said host computer, and display said status from said reconstructed data for a period of time for a plurality of tasks by means of graphics on said display, wherein said event data is a time-ordered stream of representations of said events; wherein each of said plurality of contexts has a status word; wherein said host program maintains a corresponding status word for the status word of said each context; and wherein said step of reconstructing and storing comprises modifying said corresponding status word for each event which causes a task state transition in a context, and inserting a representation of said modified corresponding status word into said stream.
-
Specification