Method and apparatus for analyzing software executed in embedded systems
First Claim
1. A method of analyzing software being executed in a target system, comprising:
- inserting a plurality of executable tag statements at locations in the software which, when executed, cause the target system to write a plurality of respective tags to at least one predetermined location in an address space of the target system, the respective tags containing respective tag values corresponding to the locations in the software of respective tag statements generating the respective tags;
storing in a symbol database instrumentation data associated with each executable tag statement inserted into the software;
retrieving tags during execution of the software from the at least one predetermined location; and
determining, during execution of the software, the software locations that have been executed by using the tag values of the retrieved tags as keys for retrieving from the symbol database the instrumentation data associated with each of the retrieved tags.
18 Assignments
0 Petitions
Accused Products
Abstract
A software analysis system for capturing tags generated by tag statements in instrumented source code. The software analysis system includes a probe that monitors the address and data bus of the target system. When a tag statement is executed in the target system, a tag is written to a predetermined location in the address space of the target system. The tag contains a tag value that is indicative of the location in the source code of the tag statement generating the tag. By monitoring the predetermined address, the probe is able to capture tags as they are written on the data bus of the target system. By properly instrumenting the source code, the software analysis system is able to perform a variety of analysis functions in essentially real time, including code coverage, function and task execution times, memory allocation, call pairs, and program tracing.
-
Citations
26 Claims
-
1. A method of analyzing software being executed in a target system, comprising:
-
inserting a plurality of executable tag statements at locations in the software which, when executed, cause the target system to write a plurality of respective tags to at least one predetermined location in an address space of the target system, the respective tags containing respective tag values corresponding to the locations in the software of respective tag statements generating the respective tags; storing in a symbol database instrumentation data associated with each executable tag statement inserted into the software; retrieving tags during execution of the software from the at least one predetermined location; and determining, during execution of the software, the software locations that have been executed by using the tag values of the retrieved tags as keys for retrieving from the symbol database the instrumentation data associated with each of the retrieved tags. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for analyzing a computer program executed in a target system, comprising:
-
a tagging instrumenter that inserts a plurality of executable tag statements having tag values into the computer program at tagging locations and records instrumentation data related to the tagging locations; a symbol database that contains the tag values associated with the plurality of executable tag statements and the instrumentation data; and a program memory containing instructions of the computer program causing the target system to write at least one tag to at least one predetermined location in an address space of the target system during the execution of the computer program in the target system, the at least one tag containing a respective tag value corresponding to a tagging location in the computer program. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A system for determining and displaying the coverage of software being executed in a target system, the software containing a plurality of executable tag statements which, when executed, cause the target system to write a plurality of respective tags to at least one location in an address space of the target system, the respective tags containing respective tag values corresponding to locations in the software of respective tag statements generating the respective tags, the system comprising:
-
a probe communicating with the target system while the target system executes the software, the probe capturing tags from the target system when executable respective tag statements are executed; a processor connected to the probe, the processor determining software locations that have been executed based on the respective tag values of the captured tags while the target system executes the software; and a symbol database communicating software location data to the processor, the symbol database receiving from the processor the respective tag values of the captured tags, the processor using the respective tag values as reference keys for retrieving corresponding software location data. - View Dependent Claims (23, 24, 25, 26)
-
Specification