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

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

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

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

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

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Ваше сообщение отправлено.

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


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

>
>
>
Beta-тестирование плагина PVS-Studio дл…

Beta-тестирование плагина PVS-Studio для JetBrains CLion

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

0839_CLion_beta_test_ru/image1.png

Год назад, 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/image6.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/image11.png

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

0839_CLion_beta_test_ru/image12.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/image25.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/image28.png

Заключение

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

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

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

Популярные статьи по теме
Эффект последней строки

Дата: 31 Май 2014

Автор: Андрей Карпов

Я изучил множество ошибок, возникающих в результате копирования кода. И утверждаю, что чаще всего ошибки допускают в последнем фрагменте однотипного кода. Ранее я не встречал в книгах описания этого …
PVS-Studio ROI

Дата: 30 Янв 2019

Автор: Андрей Карпов

Время от времени нам задают вопрос, какую пользу в денежном эквиваленте получит компания от использования анализатора PVS-Studio. Мы решили оформить ответ в виде статьи и привести таблицы, которые по…
Характеристики анализатора PVS-Studio на примере EFL Core Libraries, 10-15% ложных срабатываний

Дата: 31 Июл 2017

Автор: Андрей Карпов

После большой статьи про проверку операционной системы Tizen мне было задано много вопросов о проценте ложных срабатываний и о плотности ошибок (сколько ошибок PVS-Studio выявляет на 1000 строк кода)…
Как PVS-Studio оказался внимательнее, чем три с половиной программиста

Дата: 22 Окт 2018

Автор: Андрей Карпов

PVS-Studio, как и другие статические анализаторы кода, часто выдаёт ложные срабатывания. Но не стоит спешить считать странные срабатывания ложными. Это короткая история о том, как PVS-Studio вновь ок…
Любите статический анализ кода!

Дата: 16 Окт 2017

Автор: Андрей Карпов

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

Дата: 21 Ноя 2018

Автор: Андрей Карпов

Краткое описание технологий, используемых в инструменте PVS-Studio, которые позволяют эффективно обнаруживать большое количество паттернов ошибок и потенциальных уязвимостей. Статья описывает реализа…
PVS-Studio для Java

Дата: 17 Янв 2019

Автор: Андрей Карпов

В седьмой версии статического анализатора PVS-Studio мы добавили поддержку языка Java. Пришло время немного рассказать, как мы начинали делать поддержку языка Java, что у нас получилось и какие дальн…
Как и почему статические анализаторы борются с ложными срабатываниями

Дата: 20 Мар 2017

Автор: Андрей Карпов

В своей предыдущей статье я писал, что мне не нравится подход, при котором статические анализаторы кода оцениваются с помощью синтетических тестов. В статье приводился пример, воспринимаемый анализат…
Бесплатный PVS-Studio для тех, кто развивает открытые проекты

Дата: 22 Дек 2018

Автор: Андрей Карпов

В канун празднования нового 2019 года команда PVS-Studio решила сделать приятный подарок всем контрибьюторам open-source проектов, хостящихся на GitHub, GitLab или Bitbucket. Им предоставляется возмо…
Главный вопрос программирования, рефакторинга и всего такого

Дата: 14 Апр 2016

Автор: Андрей Карпов

Вы угадали, ответ - "42". Здесь приводится 42 рекомендации по программированию, которые помогут избежать множества ошибок, сэкономить время и нервы. Автором рекомендаций выступает Андрей Карпов - тех…

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

Следующие комментарии

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