Тцов - Tcov

tcov
Разработчики)Корпорация Oracle
Операционная системаСолярис
ПлатформаSPARC
ТипПокрытие кода
ЛицензияБесплатно для загрузки и использования, как описано в Лицензия на продукт Sun Studio.
Интернет сайтdevelopers.sun.com

Тцов это покрытие исходного кода инструмент анализа и составления профилей для программного обеспечения, написанного на Фортран, C и C ++. Tcov генерирует точный подсчет количества раз, когда каждый оператор в программе выполняется, и аннотирует исходный код добавить приборы. Это стандартная утилита, при условии бесплатный с Солнечная студия программное обеспечение под Лицензия на продукт Sun Studio.[1]

Утилита tcov дает информацию о том, как часто программа выполняет сегменты кода. Он создает копию исходного файла с пометкой частоты выполнения. Код может быть аннотирован на базовый блок уровень или уровень исходной строки. Поскольку операторы в базовом блоке выполняются одинаковое количество раз, количество выполнений базового блока равно количеству выполнений каждого оператора в блоке. Утилита tcov не производит никаких данных с привязкой ко времени.

Описание

tcov производит анализ тестового покрытия скомпилированная программа. tcov принимает исходные файлы в качестве аргументов и создает аннотированный список источников. Каждый базовый блок кода (или каждая строка, если указана конкретная опция tcov) имеет префикс с указанием количества раз, когда она была выполнена; строки, которые не были выполнены, имеют префикс "#####".

Утилита tcov также помещает сводку в конце аннотированного списка программ. Статистика для наиболее часто выполняемых базовых блоков приведена в порядке частоты выполнения. Номер строки - это номер первой строки в блоке.

Существует две реализации tcov:

  • Анализ покрытия старого стиля:[2] В этой реализации, также известной как tcov original, компилятор создает файл данных покрытия с суффиксом .d для каждого объектного файла. Когда программа завершается, файлы данных о покрытии обновляются.
  • Анализ покрытия нового стиля:[3] В этой реализации, также известной как расширенный tcov, во время компиляции не создаются дополнительные файлы. Вместо, каталог создается для хранения данных профиля, и в этом каталоге создается единственный файл данных покрытия с именем tcovd.

Расширенный анализ покрытия устраняет некоторые недостатки исходного инструмента анализа, такие как:[4]

  • Обеспечивает более полную поддержку C ++.
  • Поддерживает код, содержащийся в файлах заголовков #include, и исправляет ошибку, которая скрывала номера покрытия для классов и функций шаблонов.
  • Более эффективная среда выполнения, чем исходная среда выполнения tcov.
  • Поддерживается для всех платформ, поддерживаемых компиляторами.

Выполнение

Чтобы сгенерировать аннотированный исходный код, необходимо выполнить три шага:[5]

  • Компиляция кода с соответствующей опцией компилятора
  • Выполнение программы для накопления данных профиля
  • tcov выполнение команды для создания файлов с аннотациями

Каждый последующий прогон накапливает больше данных о покрытии в файле данных профиля. Данные для каждого объектного файла обнуляются при первом запуске программы после перекомпиляции. Данные для всей программы обнуляются путем удаления файла tcovd.[6]

Вышеуказанные шаги объясняются как для оригинального, так и для расширенного tcov ниже:

Анализ покрытия старого стиля

Исходный код скомпилирован с -xa опция для программы C и вариант для программ Fortran и C ++. Компилятор создает файл данных покрытия с суффиксом .d для каждого объектного файла. Файл данных покрытия создается в каталоге, указанном переменной среды. TCOVDIR. Если TCOVDIR не задан, файл данных покрытия создается в текущем каталоге. Вышеупомянутая инструментальная сборка запускается, и по завершении программы .d файлы обновлены. Наконец, команда tcov запускается для генерации аннотированных исходных файлов. Синтаксис команды tcov следующий:

Опции tcov список исходных файлов

Здесь, список-исходных файлов список имен файлов исходного кода. Для списка опций: По умолчанию tcov выводит набор файлов, каждый из которых имеет суффикс .tcov, который можно изменить с помощью параметр имени файла.

Программа, скомпилированная для анализа покрытия кода, может быть запущена несколько раз (с потенциально различными входными данными); tcov можно использовать в программе после каждого запуска для сравнения поведения.

Анализ покрытия нового стиля

Исходный код скомпилирован с -xprofile = tcov вариант. В отличие от исходного режима, расширенный tcov не создает никаких файлов во время компиляции.[7] Вышеупомянутая инструментальная сборка запускается, и по завершении программы создается каталог для хранения данных профиля и один файл данных покрытия с именем tcovd создается в этом каталоге. tcovd содержит информацию о номерах строк и счетчике выполнения. Это простой текстовый файл. По умолчанию каталог создается в том месте, где запущена программа, и назван в честь исполняемого файла с суффиксом .профиль. Каталог также известен как профиль ковш. Расположение ковша профиля можно изменить, установив SUN_PROFDATA_DIR или же SUN_PROFDATA переменные среды. Наконец, команда tcov запускается для генерации аннотированных исходных файлов. Синтаксис команды tcov такой же, как и у исходной команды, за исключением обязательного -Икс вариант.

Параметры tcov -x profilebucket список исходных файлов

Единственное отличие команды от оригинального tcov - это обязательное добавление: -x директория вариант для обозначения расширенных тков.

Пример

Следующая программа, написанная на Язык программирования C, петли проверяет целые числа от 1 до 9 и проверяет их делимость с помощью оператора модуля (%).

#включают <stdio.h>intглавный (пустота){  int я;  за (я = 1; я < 10; я++)    {      если (я % 3 == 0)        printf ("% d делится на 3 п", я);      если (я % 11 == 0)        printf ("% d делится на 11 п", я);    }  возвращаться 0;}

Чтобы включить тестирование покрытия, программа должна быть скомпилирована со следующими параметрами:

за Старый стиль покрытие кода,

cc -xa cov.c

и для новый стиль покрытие кода,

cc -xprofile = tcov -o cov cov.c

где cov.c - имя программного файла. Это создает инструментальную исполняемый файл который содержит дополнительные инструкции, которые записывают, сколько раз выполняется каждая строка программы. опция используется для установки имени исполняемого файла. Затем необходимо запустить исполняемый файл для создания данных покрытия. Создание и расположение этого файла различны для анализа кода старого и нового стиля. В Старый стиль анализ, этот файл с расширение .d, созданный после сборник, либо в TCOVDIR каталог или текущий, обновляется данными о покрытии. В новый стиль анализ, файл данных покрытия, с именем tcovd, создается в <имя исполняемого файла> .profile каталог. Эти данные можно проанализировать с помощью команды tcov и имени исходного файла:

за Старый стиль покрытие кода,

tcov cov.c

и для новый стиль покрытие кода,

tcov -x cov.profile cov.c

аргумент сложения в новый стиль анализ профиль ковш. В tcov команда создает аннотированную версию оригинала исходный файл с расширением файла «.tcov», содержащим подсчет количества выполнений каждой строки:

        #включают <stdio.h>        int        главный (пустота)        {     1    int я;    10    за (я = 1; я < 10; я++)            {     9        если (я % 3 == 0)     3          printf ("% d делится на 3 п", я);     9        если (я % 11 == 0)###### printf ("% d делится на 11  n", i);     9      }     1    возвращаться 0;     1  }

В tcov Утилита также помещает сводку в конце аннотированного списка программ. Статистика по наиболее часто выполняемым базовые блоки перечислены в порядке частоты выполнения. Номер строки - это номер первой строки в блоке.

Параметры командной строки

Утилита командной строки Tcov поддерживает следующие параметры при создании файлов с аннотациями из данных профиля:[8]

  • : Показать счетчик выполнения для каждого оператора. Если этот параметр не указан, то счетчик выполнения отображается только для лидера группы. блок кода.
  • -n: Показать таблицу номеров строк n наиболее часто выполняемых операторов и счетчиков их выполнения.
  • -o имя файла: Направить выход на имя файла вместо file.tcov. Эта опция может использоваться для прямого вывода на стандартный вывод указав -.
  • -x директория: Это поддерживается в новом стиле анализа покрытия. Если этот параметр не указан, предполагается покрытие tcov старого стиля.

Смотрите также

Рекомендации

  1. ^ "профилирование программ с tcov". Получено 6 февраля 2012.
  2. ^ «Оригинальный анализ отчетов Tcov». Получено 6 февраля 2012.
  3. ^ «Улучшенный анализ отчетов по операторам». Получено 6 февраля 2012.
  4. ^ "Улучшенные функции tcov улучшены по сравнению с оригиналом tcov". Получено 6 февраля 2012.
  5. ^ oracle.com. «шаги, необходимые для создания аннотированного исходного кода».
  6. ^ www.sics.se. "Справочная страница SunOS".
  7. ^ docs.oracle.com. "расширенный тков".
  8. ^ developers.sun.com. «Цовская документация». Получено 7 февраля, 2012.