Developer Guide and Reference

Contents

Code Coverage Tool

The code coverage tool provides software developers with a view of how much application code is exercised when a specific workload is applied to the application. To determine which code is used, the code coverage tool uses Profile-guided Optimization (PGO) options and optimizations. The major features of the code coverage tool are listed below:
  • Visually presenting code coverage information for an application with a customizable code coverage coloring scheme
  • Displaying dynamic execution counts of each basic block of the application
  • Providing differential coverage, or comparison, profile data for two runs of an application
The information about using the code coverage tool is separated into the following sections:
The tool analyzes static profile information generated by the compiler, as well as dynamic profile information generated by running an instrumented form of the application binaries on the workload. The tool can generate an HTML-formatted report and export data in both text-, and XML-formatted files. The reports can be further customized to show color-coded, annotated, source-code listings that distinguish between used and unused code.
The code coverage tool is available on all supported Intel architectures on Linux*, Windows*, and
macOS*
operating systems.
You can use the tool in a number of ways to improve development efficiency, reduce defects, and increase application performance:
  • During the project testing phase, the tool can measure the overall quality of testing by showing how much code is actually tested.
  • When applied to the profile of a performance workload, the code coverage tool can reveal how well the workload exercises the critical code in an application. High coverage of performance-critical modules is essential to taking full advantage of the Profile-Guided Optimizations that Intel Compilers offer.
  • The tool provides an option useful for both coverage and performance tuning, enabling developers to display the dynamic execution count for each basic block of the application.
  • The code coverage tool can compare the profile of two different application runs. This feature can help locate portions of the code in an application that are unrevealed during testing but are exercised when the application is used outside the test space, for example, when used by a customer.

Code Coverage Tool Requirements

To run the code coverage tool on an application, you must have following items: