Традиционно сложилось, что основной средой разработки для работы с анализатором PVS-Studio была среда Visual Studio от Microsoft. Наш анализатор начинал свой путь на Windows, поэтому выбор Visual Studio был вполне оправданным и очевидным. Тем не менее, более чем за 10 лет развития PVS-Studio анализатор стал доступен для нескольких других языков и платформ, поэтому вполне естественно, что в нашей поддержке всё больше людей спрашивают о возможности интеграции PVS-Studio с их любимой IDE.


Год назад, 18 июня 2020 года, состоялся первый релиз плагина PVS-Studio для среды разработки JetBrains Rider. Этот релиз был приурочен к одновременному выходу анализатора PVS-Studio для C# на платформах Linux и macOS.


Сегодня же мы рады объявить о начале публичного beta-тестирования плагина для другой IDE от JetBrains — CLion. Мы верим, что данное нововведение значительно улучшит опыт работы с нашим продуктом для Linux и кроссплатформенных С++ пользователей. По результатам прохождения beta-тестов мы надеемся выпустить первую версию плагина CLion в предстоящем релизе PVS-Studio 7.14, в последних числах июля — начале августа.


Как принять участие в beta тесте PVS-Studio for CLion


Для полноценного тестирования плагина необходимо инсталлировать саму бета-версию плагина и бета-версию ядра C++ анализатора. Плагин можно установить несколькими способами: из официального репозитория, из репозитория на нашем сайте или с помощью Windows установщика PVS-Studio — далее мы расскажем, как это сделать.


После установки плагина и анализатора вы можете зарегистрироваться на beta-тест PVS-Studio for CLion на нашей странице раннего доступа, вам на почту придёт пробный ключ для анализатора.


Подробную документацию по установке и работе с плагинами PVS-Studio для CLion и Rider можно найти здесь, а мы дальше приведём краткую инструкцию по установке и первому запуску PVS-Studio в CLion.


Цель любого beta-теста — сбор отзывов пользователей о новом продукте, удобстве его использования и, конечно, неизбежных багах, которые всегда присутствуют в ранних версиях. Данный beta-тест не исключение. Если вы столкнулись с одной из таких ошибок или просто хотите поделиться своими впечатлениями о новом плагине PVS-Studio, обязательно напишите нам в ответ на письмо, пришедшее после регистрации на beta-тесте или свяжитесь с нами с помощью нашей формы обратной связи.


Установка из официального репозитория


Для этого нужно запустить CLion и далее File->Settings->Plugins, выбрать вкладку Marketplace, а в строке поиска ввести 'PVS-Studio'. Далее установить плагин PVS-Studio for CLion.


0839_CLion_beta_test_ru/image2.png


Установка плагина из репозитория PVS-Studio


Этот пункт аналогичный предыдущему, но сначала надо настроить CLion для нового репозитория. Для этого перейдите в File->Settings->Plugins, нажмите на "шестерёнку" в правой части окна и в выпадающем меню выберите Manage Plugin Repositories.


0839_CLion_beta_test_ru/image4.png


В открывшимся окне добавьте путь http://files.viva64.com/java/pvsstudio-clion-plugins/updatePlugins.xml. И нажмите ОК.


0839_CLion_beta_test_ru/image5.png


Далее устанавливаем плагин аналогично предыдущему пункту.


Установка с помощью Windows инсталлятора


Если вы используете операционную систему Windows, вы можете установить плагин и ядро анализатора из дистрибутива. Для этого скачайте и запустите инсталлятор отсюда (в таблице в колонке Windows скачайте ".exe" файл установщика).


Установка beta-версии анализатора С++


Для корректной работы PVS-Studio в CLion помимо непосредственно самого плагина требуется установить ядро C++ анализатора. Для этого можно перейти по адресу и скачать дистрибутив для вашей платформы. Если вы установили дистрибутив для Windows, то этот пункт можно пропустить.


Если вы используете операционные системы Linux или macOS, вы также можете воспользоваться следующими командами для установки:


Для debian-based систем:


wget -q -O - https://files.viva64.com/beta/etc/pubkey.txt | \
  sudo apt-key add -

sudo wget -O /etc/apt/sources.list.d/viva64-beta.list \
  https://files.viva64.com/beta/etc/viva64.list

sudo apt-get update
sudo apt-get install pvs-studio

Для yum-based систем:


wget -O /etc/yum.repos.d/viva64-beta.repo \
  https://files.viva64.com/beta/etc/viva64.repo

yum update
yum install pvs-studio

Для zypper-based систем:


wget -q -O /tmp/viva64-beta.key https://files.viva64.com/beta/etc/pubkey.txt
sudo rpm --import /tmp/viva64-beta.key
sudo zypper ar -f https://files.viva64.com/beta/rpm viva64-beta
sudo zypper update
sudo zypper install pvs-studio

Для macOS:


brew install viva64/pvs-studio/pvs-studio-beta

Регистрация продукта


После регистрации в beta-тесте и получения регистрационного ключа для активации лицензии нужно перейти в окно Tools->PVS-Studio->Settings. В открывшемся окне перейти на вкладку Registration.


0839_CLion_beta_test_ru/image7.png


В полях User Name и Serial Number нужно ввести соответствующие данные лицензии. Ещё раз напоминаем, что получить регистрационный ключ можно здесь: страница раннего доступа.


Первое знакомство с плагином


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


0839_CLion_beta_test_ru/image9.png


Плагин позволяет анализировать CMake проекты, загруженные в CLion, и отдельные выбранные файлы.


Для запуска анализа выберите Tools->PVS-Studio->Check Project.


0839_CLion_beta_test_ru/image10.png


Для анализа выбранных файлов Tools -> PVS-Studio -> Check Current File.


0839_CLion_beta_test_ru/image11.png


Результаты анализа можно увидеть в окне PVS-Studio:


0839_CLion_beta_test_ru/image13.png


В окне можно увидеть таблицу, которая состоит из столбцов c кодом предупреждения, описанием проблемы, позицией и т.д.


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


Команда 'Mark selected messages as False Alarms / Remove false alarm masks' позволяет разметить сообщение анализатора как ложное срабатывание, добавив в код, на который выдано предупреждение, комментарий специального вида.


Команда 'Exclude from analysis' позволяет добавить путь или часть пути к файлу, в котором найдено предупреждение анализатора, в список исключённых из анализа директорий. Все файлы, пути до которых попадут под данный фильтр, будут исключены из анализа.


0839_CLion_beta_test_ru/image15.png


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


0839_CLion_beta_test_ru/image17.png


Настройки плагина


Для того чтобы открыть окно настроек плагина, зайдите в Tools->PVS-Studio->Settings. Панель настроек плагина состоит из нескольких вкладок. Рассмотрим каждую из них подробнее.


Settings — настройки ядра анализатора PVS-Studio. При наведении курсора мыши на название настройки появляется подсказка с описанием того, для чего эта настройка предназначена.


0839_CLion_beta_test_ru/image19.png


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


0839_CLion_beta_test_ru/image21.png


Excludes — содержит маски для имен файлов и путей, которые будут исключены из анализа.


0839_CLion_beta_test_ru/image23.png


Как начать использовать анализатор на проекте с большим объёмом legacy кода


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


Чтобы решить данную проблему и начать сразу регулярно использовать статический анализ, PVS-Studio предлагает возможность "отключить" сообщения на старом коде. Чтобы подавить сообщения анализатора на старом коде можно воспользоваться командой главного меню 'Tools -> PVS-Studio -> Suppress All Messages' или кнопкой 'Suppress All Messages' на панели окна PVS-Studio. Механизм подавления работает с помощью специальных suppress файлов, в которые добавляются подавленные сообщения анализатора после выполнения команды 'Suppress All Messages'. При последующем запуске анализа все сообщения, добавленные в такие suppress файлы, не попадут в отчёт анализатора. Система подавления через suppress файлы достаточно гибкая и способна "отслеживать" подавленные сообщения даже при модификации и сдвигах участков кода, в которых выдаётся подавленное сообщение.


0839_CLion_beta_test_ru/image24.png


В CLion подавленные сообщения добавляются в suppress_base.json, который записывается в директорию .PVS-Studio в корневой директории открытого в CLion проекта. Чтобы вернуть все сообщения в вывод анализатора, необходимо удалить этот файл и перезапустить анализ.


Смотрите также статью "Как внедрить статический анализатор кода в legacy проект и не демотивировать команду".


Сохранение и загрузка результатов анализа


Для сохранения или загрузки результатов работы анализатора можно воспользоваться командами главного меню, доступными через 'Tools -> PVS-Studio':


0839_CLion_beta_test_ru/image26.png


Команда 'Open Report' открывает .json файл отчёта и загружает его содержимое в таблицу окна 'PVS-Studio'.


Подменю 'Recent Reports' показывает список из нескольких последних открытых файлов отчётов. При нажатии на элемент в списке будет открыт соответствующий отчёт (если отчёт ещё существует по такому пути) и его содержимое будет загружено в таблицу окна 'PVS-Studio'.


Команда 'Save Report' сохраняет все сообщения из таблицы (даже отфильтрованные) в .json файл отчёта. Если текущий результат анализа ещё ни разу не сохранялся, то будет предложено задать имя и место для сохранения отчёта.


Аналогично команда 'Save Report As' сохраняет все предупреждения из таблицы (даже отфильтрованные) в .json файл отчёта, всегда предлагая выбрать место сохранения отчёта на диске.


Инкрементальный анализ


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


Режим инкрементального анализа можно включить или отключить. Для этого надо выбрать опцию Tools->PVS-Studio->Analysis after Build (Modified files only) и далее Enabled или Disabled.


0839_CLion_beta_test_ru/image27.png


Заключение


С поддержкой новой IDE JetBrains CLion мы надеемся сделать использование анализатора более удобным для наших C++ пользователей на всех поддерживаемых платформах (Windows, Linux, macOS). И хотя остаётся ещё много сред разработки, в которых нет прямой интеграции PVS-Studio (однако во многих из них можно использовать анализатор с помощью стандартных средств просмотра предупреждений компилятора), мы планируем в будущем наращивать количество IDE, которые мы поддерживаем напрямую.


Исходя из интереса наших пользователей наиболее вероятным следующим кандидатом для такой поддержки будет Visual Studio Code. Пишите нам если вам интересна прямая интеграция нашего анализатора в "вашу" IDE, и, возможно, она тоже появится в наших планах.


Ну и напоследок ещё раз напомню, что вы можете зарегистрироваться для участия в beta-тесте и написать нам через форму обратной связи о найденных проблемах и пожеланиях.


Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Beta-Testing of PVS-Studio Plugin for JetBrains CLion.

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