Interested Article - Gcov

Gcov — свободно распространяемая утилита для исследования покрытия кода . Gcov генерирует точное количество исполнений для каждого оператора в программе и позволяет добавить аннотации к исходному коду. Gcov поставляется как стандартная утилита в составе пакета GCC .

Утилита gcov предоставляет информацию о том, сколько раз исполнился во время работы программы каждый участок кода. Аннотированный исходный код сохраняется в новом файле, содержащим счетчики исполнения и текст программы. В отличие от , не создает каких-либо данных, зависящих от длительности работы кода. Работает, в основном, с программами, скомпилированными с помощью GNU GCC. Не совместим с другими механизмами профилирования или тестирования покрытия.

Описание

gcov создает файл с анализом покрытий для специальным образом инструментированных программ. Опции -fprofile-arcs -ftest-coverage должны использоваться при компиляции программ для анализа покрытия. Первая опция приводит к сохранению статистики исполнения строк исходного файла, а вторая — к записи статистики условных переходов (ветвлений). После запуска такой программы будет создано несколько файлов с расширениями «.bb», «.bbg», «.da», которые могут анализироваться gcov. Он принимает в качестве аргумента командной строки имена файлов с исходными текстами и производит аннотированный листинг. Перед каждой строкой исходного кода указывается количество её исполнений; те строки, которые не исполнились ни разу, помечаются префиксом «#####».

gcov создает файл имя_исходника.gcov , в котором индицируется, сколько раз исполнили каждую строку исходного файла имя_исходника.c .

Опции командной строки

Опции Gcov:

  • -h ( --help ): Краткая помощь
  • -v ( --version ): Отображение версии программы
  • -a ( --all-blocks ): Печать счетчиков для всех базовых блоков, не только для основного блока в строке
  • -b ( --branch-probabilities ): Сохранить в выходной файл частоты условных переходов и отобразить статистику переходов на стандартный поток вывода. Безусловные переходы по этой опции не показаны, пока не подана опция -u
  • -c ( --branch-counts ): Сохранить статистику переходов в виде точных величин, а не процентов вероятности
  • -n ( --no-output ): Не создавать выходной файл gcov
  • -l ( --long-file-names ): Создавать длинные имена для файлов, включенных в исходник по директиве #included. К примеру, если заголовочный файл x.h содержит исполнявшийся код и был включен в файл a.c, то запуск gcov на a.c создаст файл a.c##x.h.gcov вместо x.h.gcov. Это полезно когда x.h включен многократно в различные исходные файлы
  • -p ( --preserve-paths ): Сохранять полный путь в именах создаваемых .gcov файлов. Без этой опции используется лишь имя файла, с ней — имя файла и путь к нему, в котором все символы '/' заменены на символы '#'; каталоги '.' удалены; а компоненты '..' переименованы в '^'. Полезно в случаях, когда исходные файлы хранятся в нескольких каталогах
  • -f ( --function-summaries ): Выводить статистику по функциям в дополнение к статистике по файлам.
  • -u ( --unconditional-branches ): Включать статистику по безусловным переходам в статистику переходов.
  • -d ( --display-progress ): Отображать прогресс обработки.

Генераторы отчётов на базе gcov

Lcov — графический интерфейс для gcov. Он собирает файлы gcov для нескольких файлов с исходниками и создает комплект HTML -страниц с кодом и сведениями о покрытии. Также генерируются страницы для упрощения навигации. Lcov поддерживает покрытие строк, функций, ветвлений.

Gcovr предоставляет утилиту для управления использованием gcov и генерации сводных отчётов о покрытии. Эта команда основана на python-пакете coverage.py, который предоставляет аналогичную утилиту в Python. Gcovr создает компактные, удобочитаемые сводные отчеты, машиночитаемые XML-отчеты или графические HTML-отчёты. Отчеты XML, сгенерированные gcovr, могут использоваться Jenkins для предоставления графических отчётов покрытия кода. Gcovr поддерживает измерение покрытия операторов и ветвлений.

См. также

Примечания

  1. (неопр.) . 9 апреля 2014 года.
  2. Brian J. Gough. (англ.) . 14 марта 2013 года. . Дата обращения: 15 ноября 2012. Архивировано 14 марта 2013 года.
  3. . Дата обращения: 12 февраля 2012. 8 января 2013 года.
  4. gnu.org. . Дата обращения: 11 февраля 2012. 8 января 2013 года.
  5. linux commands. . Дата обращения: 12 февраля 2012. 8 января 2013 года.
  6. . 8 января 2013 года.
  7. . gcovr.com. Дата обращения: 14 октября 2019. 14 октября 2019 года.
Источник —

Same as Gcov