Я отправил текстовый лог PVS-Studio авторам проекта! Я - молодец?




Часто люди, которые знакомятся с нашим анализатором, делают следующую вещь. Они проверяют какой-нибудь известный проект. Сохраняют результат анализа в текстовый файл. И отправляют разработчикам, думая, что сделали очень хорошее дело. Ведь они же помогут им найти ошибки! Я хочу рассказать, почему так делать не стоит.

На протяжении всего времени существования PVS-Studio мы стараемся сделать анализатор как можно более функциональным и удобным в работе. Один из ключевых моментов в работе с инструментом - обработка результатов анализа. И от того, как интерпретируются результаты проверки, во многом зависит впечатление от инструмента и эффективность его использования.

В чём же проблема?

Порой люди не понимают, как правильно использовать результаты работы анализатора, а иногда - и сам анализатор. Безусловно, в этом наша вина. Тем не менее, мы стараемся её загладить, делая интерфейс как можно более понятным, добавляя в состав дистрибутива утилиты для обработки результатов анализа, реализуем функции, предназначенные повысить степень удобства работы с отчётом анализатора. Всё это сопровождается подробной документацией, но кто ж её читает?

В интерпретации результатов и заключается проблема. Сейчас лог представляет собой xml-файл, и некоторые разработчики пытаются обрабатывать его вручную. Это неверный подход, .plog-файлы не предназначены для ручной обработки! Лог-файл, полученный в результате работы анализатора - это сборник информации, которую можно обрабатывать самым разнообразным образом, наиболее удобно подстраивая под себя результаты анализа. При условии использования имеющихся утилит. Всё уже готово - осталось только начать пользоваться!

Истина где-то рядом (с)

Какие же функции могут повысить удобство работы с логом?

  • Отключение диагностических правил. Ряд диагностических правил может быть неактуален для вашего проекта. Лучшим выходом будет отключение этих правил - это позволит игнорировать те предупреждения, которые неинтересны для вас;
  • Исключение из анализа директорий. Можно задать специфические директории, анализ файлов в которых вас не интересует. Будет полезно для исключения из анализа, например, стороннего ПО;
  • Разметка ложных срабатываний. С помощью этого механизма можно разметить ложные срабатывания анализатора, которые больше не будут отображаться в логе и мешать его просмотру;
  • Сортировка предупреждений по уровням важности. Позволит дифференцировать наиболее и наименее критичные ошибки, тем самым упрощая расстановку приоритетов по обработке предупреждений;
  • Фильтрация сообщений. Есть много возможных вариантов фильтрации: по коду ошибки, по названию проекта, по степени важности и т.п. Это позволит отфильтровать предупреждения таким образом, чтобы работать с ними было наиболее удобно;
  • Преобразование в другие форматы. Например, можно преобразовать лог в html-файл, который в дальнейшем можно использовать, например, для рассылки по e-mail.

Заключение

Не стремитесь просмотреть сырой лог или 'изобретать велосипед' для обработки результатов анализа - скорее всего, всё необходимое вам уже реализовано, осталось только воспользоваться. О том, какие средства помогут вам наиболее эффективно пользоваться анализатором, написано в документации. А если и после её прочтения останутся какие-то вопросы - пишите нам на почту, будем рады помочь: support@viva64.com.

Да, и самое главное! Не отправляйте никому текстовый лог отчета PVS-Studio! Этим вы оказываете медвежью услугу и авторам проекта (они не будут тратить время на разбор мусора), и нам, так как другие люди подумают, что PVS-Studio работает как lint-утилита из 80-х годов.



Найдите ошибки в своем C, C++, C# и Java коде

Предлагаем попробовать проверить код вашего проекта с помощью анализатора кода PVS-Studio. Одна найденная в нём ошибка скажет вам о пользе методологии статического анализа кода больше, чем десяток статей.

goto PVS-Studio;


Найденные ошибки

Проверено проектов
346
Собрано ошибок
13 188

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;