A software analysis system for capturing tags generated by tag statements
in instrumented source code. The 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. The tag contains a tag value
that is indicative of the location in the source code of the tag statement
generating the tag. The source code instrumenter includes a
language-dependent parser and a language-independent analyzer that records
tagging data in a symbol database. The system performs a variety of
analysis functions in essentially real time, including code coverage,
function and task execution times, memory allocation, call pairs, and
program tracing.