1016_Release_7_22_ru/image1.png


Вышел новый релиз PVS-Studio — 7.22. В него вошли плагины для Visual Studio Code и Qt Creator, поддержка анализа проектов на .NET 7, доработки механизма Best Warnings, новые диагностики и не только. Подробности описали в этой заметке.


Плагины для Visual Studio Code и Qt Creator


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


Так выглядит плагин для Visual Studio Code:


1016_Release_7_22_ru/image3.png


А вот так — плагин для Qt Creator:


1016_Release_7_22_ru/image5.png


Документация по новым плагинам доступна на соответствующих страницах:



Поддержка анализа .NET 7, C# 11 и Blazor компонентов


Здесь почти всё понятно из заголовка. Сам C# анализатор под Linux и macOS, кстати, теперь тоже работает на .NET 7.


Небольшое уточнение про Blazor компоненты: сейчас поддерживается анализ в code секциях .razor-файлов. Планируем статью, которая раскроет тему чуть подробнее.


Улучшения и доработки Best Warnings


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


В этом релизе обновлений Best Warnings сразу несколько:


1. Изменили интерфейс. До кнопки "Best Warnings" легче добраться — теперь она находится на основной панели главного окна PVS-Studio:


1016_Release_7_22_ru/image7.png


Если нужно, кнопку можно скрыть через настройки (опция "Show Best Warnings Button").


2. Скорректировали "веса" диагностик и алгоритмы выборки. Это должно сделать подборку предупреждений интереснее.


3. Добавили фильтр в большее количество IDE. Раньше механизм Best Warnings был доступен только в плагине для Visual Studio. Теперь кроме VS его можно использовать в утилите "C and C++ Compiler Monitoring UI", а также в плагинах для IntelliJ IDEA, Rider, CLion.


Обновлённая документация по Best Warnings — на этой странице.


Новые диагностики


C, C++


  • V836. Decreased performance. Unnecessary copying is detected when declaring a variable. Consider declaring the variable as a reference.
  • V2018. Cast should not remove 'const' qualifier from the type that is pointed to by a pointer or a reference.
  • V2019. Cast should not remove 'volatile' qualifier from the type that is pointed to by a pointer or a reference.

C#


  • V3183. Code formatting implies that the statement should not be a part of the 'then' branch that belongs to the preceding 'if' statement.
  • V5626. OWASP. Possible ReDoS vulnerability. Potentially tainted data is processed by regular expression that contains an unsafe pattern.
  • V5627. OWASP. Possible NoSQL injection. Potentially tainted data is used to create query.
  • V5628. OWASP. Possible Zip Slip vulnerability. Potentially tainted data is used in the path to extract the file.

Статьи


Для тех, кто пишет на C++:



Для тех, кто пишет на C#:



Разное:



**


Загрузить PVS-Studio 7.22 можно здесь.


Если хотите получать пресс-релизы по почте, подписывайтесь на рассылку.

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


  1. censor2005
    16.12.2022 10:01
    +3

    Плагин доступен только для версии Qt Creator 8?


    1. AlexanderKurenev
      16.12.2022 11:02

      На данный момент только для версии Qt Creator 8.0.x. А вы какую версию используете?


      1. censor2005
        16.12.2022 11:23
        +1

        Qt Creator 9.0.1. До этого была версия 7, сегодня после прочтения статьи обновил, и обновилось сразу до 9. Как обновить до 8, не понял...


        1. AlexanderKurenev
          16.12.2022 16:26

          Мы сейчас работаем над версией плагина для Qt Creator 9.0.x. Выдадим вам бету и скажем, что с ней делать, как будет готова.


  1. axel92
    16.12.2022 13:44

    Планируете выпустить бесплатную версию для некоммерческого использования?


    1. foto_shooter Автор
      16.12.2022 13:48
      +1

      Для бесплатного использования в некоммерческих проектах есть несколько вариантов. Они описаны в этой статье.

      Если хочется просто попробовать — легче воспользоваться триалом.


      1. axel92
        16.12.2022 14:27

        Спасибо, вариант с комментариями вполне устраивает.


  1. grumegargler
    16.12.2022 17:33

    А есть какие-то существенные отличия в работе плагина для vscode по сравнению с текущим механизмом вывода сообщений в панель Problems для cmake-проектов?

    В принципе, такое вот включение выводит все сообщения прямо куда нужно:

    pvs_studio_add_target(TARGET parser.analyze ALL
                          OUTPUT
                          HIDE_HELP
                          FORMAT errorfile-verbose
                          ANALYZE ${PROJECT_NAME}
                          MODE GA:1,2
                          )