Для получения триального ключа
заполните форму ниже
Team License (базовая версия)
Enterprise License (расширенная версия)
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
GBP
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Бесплатная лицензия PVS-Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

>
>
Конвертация результатов анализа (утилит…
Сообщения PVS-Studio
Диагностики общего назначения (General Analysis, C++)
Диагностики общего назначения (General Analysis, C#)
Диагностики общего назначения (General Analysis, Java)
Диагностика микро-оптимизаций (C++)
Диагностика 64-битных ошибок (Viva64, C++)
Cтандарт MISRA
Стандарт AUTOSAR
Дополнительная информация
Оглавление

Конвертация результатов анализа (утилита PlogConverter)

28 Авг 2020

В данном разделе рассматривается конвертация логов для Windows. Конвертация логов в Linux и macOS описана в документе "Как запустить PVS-Studio в Linux и macOS".

Результатом проверки проекта с помощью PVS-Studio (плагин Visual Studio, или же в режиме из консоли) обычно является XML файл отчета анализатора (".plog"). При использовании прямой интеграции анализатора в сборочную систему, результатом работы является необработанный вывод C++ анализатора. Такие файлы можно просматривать через плагин PVS-Studio для Visual Studio, либо через приложение C and C++ Compiler Monitoring UI. Эти форматы отчёта, однако, не удобны, например, для прямого просмотра в текстовом редакторе, рассылки по электронной почте и т.п. В состав дистрибутива PVS-Studio среди прочего входит утилита PlogConverter, позволяющая преобразовывать результаты анализа в другие форматы.

Утилита PlogConverter

Открыв отчет с помощью текстового редактора, пользователь столкнется с XML-разметкой или нечитаемым "сырым" выводом анализатора. Для наглядного представления результатов анализа можно воспользоваться утилитой PlogConverter, поставляемой в дистрибутиве PVS-Studio. Утилиту PlogConverter можно найти в установочной директории PVS-Studio (по умолчанию это путь "C:\Program Files (x86)\PVS-Studio"). Вы также можете скачать исходный код утилиты.

Параметры утилиты

Флаг "--help" выведет основную информацию об утилите:

PlogConverter.exe --help

Рассмотрим детально каждый параметр утилиты:

  • --renderTypes (или -t): задает возможные варианты конвертации отчета. Поддерживаемыми форматами являются Html, FullHtml, Totals, Txt, Csv, Tasks, Plog, TeamCity. Если задан неявно, то отчет конвертируется во все форматы
    • Html: конвертирует сообщения анализатора в html-файл (удобно использовать в автоматических рассылках на email).
    • FullHtml: конвертирует сообщения анализатора и исходные файлы в html-файлы (можно просматривать отчёт анализатора в браузере с сортировкой по сообщениям и навигацией по коду).
    • Txt: конвертирует сообщения анализатора в текстовый файл.
    • Csv: конвертирует сообщения анализатора в формат файла с разделителями (удобно читаем, например, в Microsoft Excel).
    • Totals: выводит суммарную информацию о количестве предупреждений разных типов (GA, OP, 64, CS, MISRA) и разных уровней достоверности. Детальное описание уровней достоверности предупреждений и наборов диагностических правил приведено в разделе документации "Знакомство со статическим анализатором кода PVS-Studio".
    • Tasks: конвертирует сообщения анализатора в формат файла для просмотра в QtCreator.
    • Plog: позволяет соединить несколько xml отчетов в один или преобразовать необработанный вывод анализатора в xml лог.
    • TeamCity: конвертирует сообщения анализатора в файл, предназначенный для загрузки и просмотра в TeamCity CI.

Возможна комбинация разных форматов через "," (без пробелов), например:

PlogConverter.exe D:\Projct\results.plog --renderTypes=Html,Csv,Totals

или

PlogConverter.exe D:\Projct\results.plog -t Html,Csv,Totals
  • --analyzer (или -a): производит фильтрацию предупреждений согласно маске. Маска фильтрации имеет следующий вид:
MessageType:MessageLevels

"MessageType" может принимать один из следующих типов: GA, OP, 64, CS, MISRA, Fail

"MessageLevels" может принимать значения от 1 до 3

Возможна комбинация разных масок через ";" (без пробелов), например (одной строкой):

PlogConverter.exe D:\Projct\results.plog --renderTypes=Html,Csv,Totals
--analyzer=GA:1,2;64:1

или

PlogConverter.exe D:\Projct\results.plog -t Html,Csv,Totals -a GA:1,2;64:1

Запись соответствует следующей логике: сконвертировать ".plog" в Html, Csv, Totals отчеты, оставив только предупреждения общего назначения (GA) 1-ого и 2-ого уровней и 64-битные ошибки (64) 1-ого уровня.

  • --excludedCodes (или -d): задает список предупреждений (через ","), которые не следует включать в результирующий отчет. Например, нужно убрать предупреждения V101, V102, V200 (одной строкой):
PlogConverter.exe D:\Projct\results.plog --renderTypes=Html,Csv,Totals
--excludedCodes=V101,V102,V200

или

PlogConverter.exe D:\Projct\results.plog -t Html,Csv,Totals -d V101,V102,V200
  • --settings (или -s): задает путь к файлу конфигурации PVS-Studio. PlogConverter прочитает настройки отключенных предупреждений из переданного файла настроек, указанных в конфигурации. По сути, этот параметр расширяет список отключаемых предупреждений параметра "--excludedCodes".
  • --srcRoot (или -r): задает замену "SourceTreeRoot" маркера. Если при проверке путь до корневого каталога проекта был заменен на "SourceTreeRoot" маркер (|?|), то этот параметр становится обязательным (иначе файлы проекта не будут найдены).
  • --outputDir (или -o): задает директорию, куда будут сохранены конвертированные отчеты. Если параметр не задан, то файлы записываются рядом с "PlogConverter.exe".
  • --outputNameTemplate (или -n): задает шаблонное имя файла без расширения. Все конвертированные отчеты будут иметь одно и то же имя, но с разными расширениями (в зависимости от "--renderTypes", это могут быть ".txt", ".html", ".csv", ".tasks", ".plog").
  • --errorCodeMapping (или -m): включить отображение CWE ID и MISRA ID для найденных предупреждений: " -m cwe,misra".
  • --indicate-warnings (или -w): устанавливает возвращаемый код утилиты PlogConverter равный '2', если после фильтрации лога в отфильтрованном выходном файле (файлах) остались предупреждения.
  • --pathTransformationMode (или -R): устанавливает режим преобразования путей при конвертации отчета. Опция требует "--srcRoot". Допустимые значения:
    • toAbsolute - пути преобразуются в абсолютные;
    • toRelative - пути преобразуются в относительные.

Коды возврата

Утилита PlogConverter имеет несколько ненулевых кодов возврата, которые не означают проблемы в работе самой утилиты, т.е. даже если утилита вернула не '0', это ещё не означает, что она отработала с ошибкой. Приведём описание всех возможных кодов возврата, которые может вернуть PlogConverter.

  • '0' - конвертация отчёта прошла успешно;
  • '1' - при генерации одного из выходных файлов возникла ошибка;
  • '2' - выходной отчёт содержит неотфильтрованные или неподавленные предупреждения. Чтобы PlogConverter завершал свою работу кодом 2 при условии, что в выходном файле остались неотфильтрованные предупреждения, необходимо передавать утилите флаг --indicate-warnings (-w);
  • '3' - общая (неспецифичная) ошибка при работе утилиты, перехваченное исключение при работе. Обычно это сигнализирует о наличии ошибки в коде самого PlogConverter'а;
  • '4' - утилите были переданы неверные аргументы командной строки, или один из файлов, переданный как аргумент, не был найден или не существует.

Автоматическое оповещение о предупреждениях анализатора

В составе дистрибутива PVS-Studio поставляется утилита BlameNotifier, которая позволяет оповещать разработчиков, заложивших в репозиторий код, на который анализатор выдал предупреждения. Также возможна настройка оповещения обо всех обнаруженных предупреждениях определённого круга лиц (это может быть полезно, например, менеджерам и руководителям команд).

Более подробно данная утилита описана в соответствующем разделе документации: "Оповещение команд разработчиков (утилита blame-notifier)".

Примечание. Утилита BlameNotifier доступна только при наличии Enterprise лицензии. Для получения лицензии, пожалуйста, напишите нам.

Этот сайт использует куки и другие технологии, чтобы предоставить вам более персонализированный опыт. Продолжая просмотр страниц нашего веб-сайта, вы принимаете условия использования этих файлов. Если вы не хотите, чтобы ваши данные обрабатывались, пожалуйста, покиньте данный сайт. Подробнее →
Принять