Завиша, Артур
- 1 year ago
- 0
- 0
Gcov — свободно распространяемая утилита для исследования покрытия кода . Gcov генерирует точное количество исполнений для каждого оператора в программе и позволяет добавить аннотации к исходному коду. Gcov поставляется как стандартная утилита в составе пакета GCC .
Утилита gcov предоставляет информацию о том, сколько раз исполнился во время работы программы каждый участок кода. Аннотированный исходный код сохраняется в новом файле, содержащим счетчики исполнения и текст программы. В отличие от , не создает каких-либо данных, зависящих от длительности работы кода. Работает, в основном, с программами, скомпилированными с помощью GNU GCC. Не совместим с другими механизмами профилирования или тестирования покрытия.
gcov создает файл с анализом покрытий для специальным образом инструментированных программ. Опции
-fprofile-arcs -ftest-coverage
должны использоваться при компиляции программ для анализа покрытия. Первая опция приводит к сохранению статистики исполнения строк исходного файла, а вторая — к записи статистики условных переходов (ветвлений).
После запуска такой программы будет создано несколько файлов с расширениями «.bb», «.bbg», «.da», которые могут анализироваться gcov. Он принимает в качестве аргумента командной строки имена файлов с исходными текстами и производит аннотированный листинг. Перед каждой строкой исходного кода указывается количество её исполнений; те строки, которые не исполнились ни разу, помечаются префиксом «#####».
gcov создает файл имя_исходника.gcov , в котором индицируется, сколько раз исполнили каждую строку исходного файла имя_исходника.c .
Опции Gcov:
Lcov — графический интерфейс для gcov. Он собирает файлы gcov для нескольких файлов с исходниками и создает комплект HTML -страниц с кодом и сведениями о покрытии. Также генерируются страницы для упрощения навигации. Lcov поддерживает покрытие строк, функций, ветвлений.
Gcovr предоставляет утилиту для управления использованием gcov и генерации сводных отчётов о покрытии. Эта команда основана на python-пакете coverage.py, который предоставляет аналогичную утилиту в Python. Gcovr создает компактные, удобочитаемые сводные отчеты, машиночитаемые XML-отчеты или графические HTML-отчёты. Отчеты XML, сгенерированные gcovr, могут использоваться Jenkins для предоставления графических отчётов покрытия кода. Gcovr поддерживает измерение покрытия операторов и ветвлений.