gcov-tool - Linux


Overview

gcov-tool is a tool used for generating code coverage information from executables compiled with the -coverage flag. It provides detailed reports on which lines of code have been executed and which have not, aiding in identifying untested or potentially problematic areas of the codebase.

Syntax

gcov-tool [options] executable-file

Options/Flags

  • -l: Generate line-by-line coverage information.
  • -f: Generate function coverage information.
  • -b: Generate block coverage information.
  • –source: Specify the source code file to generate coverage information for.
  • –output: Specify the output file to write coverage information to. Default is stdout.
  • –html: Generate HTML coverage report.
  • –xml: Generate XML coverage report.
  • –json: Generate JSON coverage report.
  • –ignore: Ignore specific source files from coverage analysis.
  • –ignore-pattern: Ignore source files matching a specific pattern from coverage analysis.
  • –debug: Enable debugging output.

Examples

Simple usage: Generate line-by-line coverage for the main.c executable:

gcov-tool main

Advanced usage: Generate XML coverage report for multiple source files, ignoring specific files:

gcov-tool --source src/file1.c --source src/file2.c --output coverage.xml --ignore src/file3.c --ignore-pattern "*.test.c"

Common Issues

  • Missing coverage information: Ensure the executable was compiled with the -coverage flag.
  • Inaccurate coverage information: Verify the source code files used for coverage generation match the executable being analyzed.
  • Unknown source file: Specify the path to the source code file using the --source option.

Integration

With lcov: Generate HTML and text coverage reports:

lcov --capture --directory . --output-file coverage.info
genhtml coverage.info --output-directory coverage-report

Related Commands

  • gcov: Generates coverage information during compilation.
  • lcov: Merges coverage information from multiple sources and generates reports.
  • coverage: Python package for measuring code coverage.