CO

code-coverage-with-gcov

Automates gcov and gcovr integration for C/C++ builds to generate line-by-line code coverage reports.

Install

mkdir -p .claude/skills/code-coverage-with-gcov && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/184" && unzip -o skill.zip -d .claude/skills/code-coverage-with-gcov && rm skill.zip

Installs to .claude/skills/code-coverage-with-gcov

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Add gcov code coverage instrumentation to C/C++ projects
56 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Instrument C and C++ source code with gcov flags
  • Integrate coverage flags into Makefile and CMake build systems
  • Generate line-by-line text coverage reports
  • Produce interactive HTML coverage reports using gcovr
  • Calculate line, branch, and function coverage metrics

How it works

The tool adds the --coverage flag to compiler and linker settings to generate .gcda and .gcno files during execution. These files are then processed by gcov or gcovr to produce human-readable coverage reports.

Inputs & outputs

You give it
C/C++ source files and build system configuration
You get back
Execution data files and coverage reports

When to use code-coverage-with-gcov

  • Instrument C++ code for coverage analysis
  • Generate HTML coverage reports
  • Configure build systems for testing

About this skill

Code Coverage with gcov

Purpose

Instrument C/C++ programs with gcov to measure test coverage.

How It Works

Build with Coverage

gcc --coverage -o program source.c

Run Program

./program
# Creates .gcda files with execution data

Generate Reports

Text report:

gcov source.c
# Creates source.c.gcov with line-by-line coverage

HTML report:

gcovr --html-details -o coverage.html

Coverage Flags

  • --coverage (shorthand for -fprofile-arcs -ftest-coverage -lgcov)
  • Add to both CFLAGS and LDFLAGS

Build System Integration

Makefile

ENABLE_COVERAGE ?= 0
ifeq ($(ENABLE_COVERAGE),1)
    CFLAGS += --coverage
    LDFLAGS += --coverage
endif

CMake

option(ENABLE_COVERAGE "Enable coverage" OFF)
if(ENABLE_COVERAGE)
    add_compile_options(--coverage)
    add_link_options(--coverage)
endif()

When User Requests Coverage

Steps

  1. Detect build system (Makefile/CMake/other)
  2. Add --coverage to CFLAGS and LDFLAGS
  3. Clean previous build: make clean or rm -f *.gcda *.gcno
  4. Build with coverage: make ENABLE_COVERAGE=1 or cmake -DENABLE_COVERAGE=ON
  5. Run tests: make test or ./test_suite
  6. Generate report: gcovr --html-details coverage.html --print-summary
  7. Present summary and path to HTML report

Output

Text (.gcov files):

        -:    0:Source:main.c
        5:   42:    int x = 10;
    #####:   43:    unused_code();
  • 5: = executed 5 times
  • #####: = not executed
  • -: = non-executable

HTML: Interactive report with color-coded coverage

Metrics

  • Line coverage: Executed lines / total lines
  • Branch coverage: Taken branches / total branches
  • Function coverage: Called functions / total functions

Target: 80%+ line coverage, 70%+ branch coverage

When not to use it

  • Projects not written in C or C++
  • Environments where gcov or gcovr tools are unavailable

Limitations

  • Requires manual cleaning of previous build artifacts to ensure accurate data
  • Depends on the presence of gcov and gcovr utilities

How it compares

This workflow automates the manual process of injecting compiler flags and executing post-build report generation commands.

Compared to similar skills

code-coverage-with-gcov side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
code-coverage-with-gcov (this skill)154moReviewIntermediate
3d-games166moNo flagsAdvanced
quality-checker03moReviewAdvanced
qt-cpp-review03moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry