Search

Design Services

Real-time Analysis support in Vitra and PathFinder

Ashling's Vitra Networked Emulators and PathFinder Source Debugger now include a set of powerful analysis and display functions for Software Quality Assurance.

Call-Return Trace and Timing Performance Analysis are included in

  • PathFinder-5500 Source Debugger for PowerPC MPC5500 series;
  • PathFinder-PPC Source Debugger v1.0.7 and later, for PowerPC MPC56x series;

  • PathFinder-PPC Source Debugger v1.0.7 and later, for PowerPC MPC56x series;
  • PathFinder-ARM Source Debugger v1.1.2 and later, for ARM7 and ARM9 cores.

CodeCoverage Measurement is included in

  • PathFinder-5500 Source Debugger v1.0.1 and later, for PowerPC MPC5500 series;
  • PathFinder-PPC Source Debugger v1.1.0 and later, for PowerPC MPC56x series.

Using the Vitra Emulator's non-intrusive capture of real-time trace data, the PathFinder Debugger displays performance analysis data in real-time while the target systems is executing; it does not interrupt or slow-down execution in any way, and it requires no target system resources.

Timing Performance Analysis

The Trace Timing Performance Analyzer window shows detailed timing information at a function level for all captured code trace information in the Vitra trace buffer.

All occurrences for the functions captured in the in the buffer are measured and their timings are compared in the display.

The columns in the display window show:

Name               Function name.

Maximum         Maximum recorded execution-time for this function.

Minimum         Minimum recorded execution-time for this function.

Average            Mean execution-time for this function, averaged over all recorded occurrences.

Cumulative       Total execution time for this function, accumulated over all recorded occurrences.

Count               Total number of recorded executions for this function.

All of the graphs in the % columns are displayed relative to the largest value for that column; for example, the function with the largest Maximum execution time is shown as 100% and the maximum execution-time for all others functions are shown as percentages of the largest.

 The Trace Timing Performance Analyzer is an invaluable tool for:

Optimization:           You can identify at-a-glance the most time-consuming functions in your program; you can then focus on optimizing the code in these functions to reduce your overall system execution-time or response-time.

Verification:             You can confirm that the Minimum, Maximum and Average execution-times for each function confirm to the requirements of your specification.

System-integration:  You can identify 'trashing' or 'lockout' conditions, where your program gets stuck in a repeated loop; 'runaway' functions (excessive executions); Initialization functions that were executed more than once; or functions that called themselves.

Execution testing:    You can identify functions that were or were not executed during your test session.

Call-Return Trace

The Call-Return Trace window displays real-time execution of the program-under-test as a sequence of high-level calls and returns.

l

The columns in the display window show:

 Frame              Position of this Call or Return Event in the Vitra Trace Buffer.

Timestamp or Cycle-count                         Shows a Timestamp (relative to the start of tracing) for this call/return event. (You can select Timestamp or cycle-count in the Trace|Trace Window Display dialog).

Event Type       -> Indicates a function Entry; <- indicates a function Exit

Address           Shows the code address of the function Entry or Exit event.

Symbol            Shows the Name of the function.

The Call-Return Trace window shows you an exceptionally clear and easy-to-understand real-time record of the sequence of function-calls in the program-under-test.

Code Coverage Measurement

Code Coverage displays all tested, untested and partially-tested source lines, function and modules in the program under test. Summary and detailed reports are provided on depth of code test coverage by function, module and program. All unused or unreachable code fragments are identified. PathTrace Code Coverage identifies branches that require additional test-cases so as to progress towards 100% code test coverage.

l
Source lines with a Green block marker show all Tested lines of code. Code Coverage information is shown in both the Source and Disassembly (reverse-assembly) windows. You can select any module, function or address range in your program and view coverage statistics for that unit; you can save Code Coverage data to disk after each test session and thus build up a test-history over a wide range of test conditions and stimuli.

(last updated: 2:00pm PST Feb 16 2005)