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

Введение

PVS-Studio — это инструмент для поиска потенциальных ошибок и уязвимостей в коде на C, C++, C# и Java. Он работает на Windows, Linux и macOS и имеет множество сценариев интеграции: плагина в IDE, игровые движки, системы качества кода и многое другое. В коммерческом сегменте PVS-Studio — платное B2B-решение, которым пользуются многие команды и компании по всему миру.

Это вторая часть из цикла статей про использование PVS-Studio с бесплатной лицензией. Мы продолжаем знакомство с инструментом и сегодня разберём настройку анализатора на новом проекте, а также первый запуск.

Предварительная настройка

В предыдущей статье мы остановились на том, что лучше всего начать использование статического анализатора с его точной настройки под целевой проект. Это не только поможет оптимизировать работу анализатора, но и позволит уменьшить процент ложных срабатываний.

Давайте пройдёмся по основным возможностям настройки анализатора. Разбирать будем на примере сценария использования плагина PVS-Studio для Visual Studio.

Примечание. Настройки анализатора находятся в этом меню: Extensions > PVS-Studio > Options

Common Analyzer Settings

Первый раздел настроек — это Common Analyzer Settings. На этой вкладке указываются общие настройки анализатора, которые не зависят от конкретного используемого модуля анализа. Рассмотрим настройки:

Check For New Versions. Если значение True, то анализатор будет автоматически проверять наличие новой версии.

ThreadCount (количество потоков). По умолчанию устанавливается значение, равное количеству ядер процессора. Анализ файлов выполняется быстрее на многоядерных машинах. Однако, если по каким-то причинам надо ограничить количество используемых ядер, то это вполне можно сделать, указав допустимое количество.

RemoveIntermediateFiles. Если будет обнаружена какая-либо проблема в работе анализатора, то эта настройка поможет сохранить временные файлы, оставшиеся после работы анализатора. Обычно они не представляют интереса для пользователя и поэтому после анализа сразу же удаляются. Однако в некоторых случаях (например, для того чтобы отправить нам) может быть полезно оставить эти файлы.

Подробнее про пункт Common Analyzer Settings можно почитать в документации.

Detectable Errors

Этот раздел позволяет выбрать, какие предупреждения будут показываться в отчёте анализатора.

Иногда бывает целесообразно скрыть предупреждения определённых диагностик или целых их групп. Например, если вы понимаете, что диагностические правила из класса "оптимизации" вас не интересуют, то вы можете скрыть эту группу предупреждений целиком или выключить определённые диагностики.

Существуют следующие группы предупреждений:

  • Fails — сообщения о проблемах с анализатором;

  • General Analysis — диагностики общего назначения;

  • Optimization — микрооптимизационные диагностики;

  • OWASP — диагностики согласно стандарту OWASP;

  • MISRA (только C/C++) — диагностики согласно стандарту MISRA;

  • AUTOSAR (только C/C++) — диагностики согласно стандарту AUTOSAR;

  • 64-bit (только C/C++) — диагностики 64-битных ошибок;

  • Customer's Specific (только C/C++) — диагностики, реализованные по запросам пользователей.

Подробнее про пункт Detectable Errors можно почитать в документации.

Don't Check Files

Этот раздел настроек позволяет исключить файлы и папки из анализа с помощью масок. Анализатор не будет проверять файлы, удовлетворяющие их условиям.

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

Более подробно про использование масок для исключения файлов из анализа можно прочитать в документации.

Keyword Message Filtering

Благодаря этому разделу можно исключить предупреждения из отчёта анализатора с помощью ключевых слов.

К примеру, вы уверены, что на вашем проекте предупреждения, связанные с printf, ложные, и проблем с ним нет. Тогда вы можете добавить ключевое слово printf в фильтр и все сообщения, которые содержат указанное значение, будут отфильтрованы (без необходимости перезапуска анализа).

Подробнее про пункт Keyword Message Filtering можно почитать в документации.

Registration

На этой странице настроек можно ввести данные вашей лицензии для активации анализатора. Если они уже внесены, то можно ознакомиться с основной информацией по лицензии: данные, тип лицензии и оставшийся срок.

Информацию по условиям лицензирования смотрите на этой странице.

Specific Analyzer Settings

В этом разделе перечислены различные дополнительные настройки анализатора. Нужен он для более точной конфигурации инструмента под специфику проекта.

Например, в категории Analysis можно задать лимит времени анализа, включить разметку по ГОСТу или отключить "шумные" диагностические правила. В Coding Standards — настроить версию стандартов кодирования, а в категории Interface — переключать язык документации или возможность использовать её оффлайн-версию, ну и, конечно, различные настройки интерфейса.

Подробнее про эти и другие виды настроек можно прочитать в документации.

Первый запуск

Теперь пора перейти непосредственно к запуску анализа, благо тут нет ничего сложного :)

В плагине PVS-Studio имеется несколько вариантов запуска анализа: всего решения, отдельных проектов или файлов.

Важно! Чтобы анализ проекта был корректным, необходимо, чтобы проверяемый проект собирался.

Если вы хотите проверить файл, то это можно сделать не только из меню плагина. Дополнительно можно запустить анализ из контекстного меню файла или из контекстного меню заголовка файла в редакторе.

Затем, после небольшого (в зависимости от размера проекта, конечно же) ожидания, у нас появится отчёт анализатора:

Здесь можно:

  • помечать интересные срабатывания;

  • подавлять ложно-позитивные срабатывания;

  • сортировать их по разным категориям;

  • выбирать уровни достоверности;

  • открывать документацию к диагностикам;

  • и ещё много чего полезного, о чём мы более подробно поговорим в следующей статье.

Но с чего лучше начать в первый раз?

Просмотр интересных предупреждений анализатора

Если вы только начали изучать инструмент статического анализа и хотели бы узнать на что он способен, то можете воспользоваться механизмом Best Warnings. Он предназначен специально для первого знакомства со статическим анализатором PVS-Studio.

Этот механизм покажет вам наиболее важные и достоверные предупреждения в отчёте для вашего проекта. Чтобы отобразить 10 самых интересных предупреждений, нужно нажать на кнопку Best:

Готово! Теперь у вас есть 10 предупреждений, на основе которых можно сделать предположение о потенциальной полезности остальных сообщений анализатора.

Ну а подробнее о том, как работать с отчётом и предупреждениями на практике, мы расскажем в следующей статье!

Примечание. Чтобы сократить ожидание, вы всегда можете ознакомиться с документацией нашего инструмента, где более подробно рассмотрены все основные вопросы.

Если у вас остались вопросы про настройку анализатора или работу инструмента, то задавайте их в комментариях под статьёй или в форме обратной связи.

Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Gleb Aslamov. How to get and use a free PVS-Studio license. Part 2: initial run and configuration.

Комментарии (0)