Релиз PVS-Studio 7.16
Последний релиз в уходящем 2021 году закрывает сразу несколько важных задач, поставленных перед командой PVS-Studio. Добавлена поддержка Visual Studio 2022, платформы .NET 6 и C# 10.0. Для стандарта MISRA C реализованы все диагностики категории Mandatory.


Поддержка Visual Studio 2022


В PVS-Studio добавлена поддержка Visual Studio 2022. Анализатор можно использовать для проверки кода C++ и C# проектов. Поддерживаются проекты, использующие новые версии стандартных C++ и .NET библиотек.


В PVS-Studio добавлена поддержка Visual Studio 2022


С точки зрения пользователя, не произошло никаких серьёзных изменений в интерфейсе анализатора и в принципах работы с ним. Да, нам теперь стоит написать обновлённый вариант статьи 2019 года "PVS-Studio для Visual Studio", но в целом приведённые в ней описания актуальны.


Поддержка .NET 6 и C# 10.0


В C# анализаторе PVS-Studio добавлена поддержка платформы .NET 6 для Windows, Linux и macOS, а также новой версии языка: C# 10.0. Кроме того, сам C# анализатор под Linux и macOS теперь работает под .NET 6.


Пользуясь случаем, предлагаем вашему вниманию статью "Обзор нововведений в C# 10".


MISRA C


В PVS-Studio на 80% поддержан стандарт обеспечения безопасности и надёжности MISRA C. При этом полностью покрыта категория предупреждений Mandatory, а также большая часть категории Required.


См. также:



Различные улучшения


Механизм отключения выдачи предупреждений на существующем коде (baseline разметка, подавление предупреждений) дополнен для работы с Unreal Engine проектами. В данном релизе baseline механизм можно использовать для UE проектов в версии анализатора PVS-Studio для командной строки. В следующей версии PVS-Studio также будет расширена поддержка подавления предупреждений при работе с UE проектами напрямую из сред разработки Visual Studio и JetBrains Rider.


Примечание. Вы можете подробнее ознакомиться с идеологией отключения предупреждений на существующем коде в статье "Как внедрить статический анализатор кода в legacy проект и не демотивировать команду".


Появился новый раздел документации, в котором описано использование PVS-Studio для проверки проектов, позволяющих сгенерировать описание сборочного процесса в формате JSON Compilation Database. Данный метод подходит для проектов на основе CMake, QBS, Ninja и т.п.


В плагинах PVS-Studio для JetBrains IDEA, Rider и CLion добавлена возможность переназначения shortcut'ов для наиболее часто используемых действий по проверке проектов и работе с результатами анализа.


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


  • V833. Using 'std::move' function with const object disables move semantics.
  • V1076. Code contains invisible characters that may alter its logic. Consider enabling the display of invisible characters in the code editor.
  • V2615. MISRA. A compatible declaration should be visible when an object or function with external linkage is defined.
  • V2616. MISRA. All conditional inclusion preprocessor directives should reside in the same file as the conditional inclusion directive to which they are related.
  • V2617. MISRA. Object should not be assigned or copied to an overlapping object.
  • V2618. MISRA. Identifiers declared in the same scope and name space should be distinct.
  • V2619. MISRA. Typedef names should be unique across all name spaces.
  • V2620. MISRA. Value of a composite expression should not be cast to a different essential type category or a wider essential type.
  • V2621. MISRA. Tag names should be unique across all name spaces.
  • V2622. MISRA. External object or function should be declared once in one and only one file.
  • V5616. OWASP. Possible command injection. Potentially tainted data is used to create OS command.

Некоторые свежие публикации в нашем блоге


  1. Развитие инструментария С++ программистов: статические анализаторы кода.
  2. Как один разработчик PVS-Studio защищал баг в проверяемом проекте.
  3. Слава баг-репортам, или как мы сократили время анализа проекта пользователя с 80 до 4 часов.
  4. Прокачка статического анализа проектов на Unreal Engine 4 и проверка автосимулятора Carla.
  5. Разнообразие ошибок в C# коде на примере CMS DotNetNuke: 40 вопросов к качеству.
  6. Спасибо, Марио, но код стоит поправить – проверка TheXTech.
  7. OWASP Top Ten и Software Composition Analysis (SCA).
  8. Вызов виртуальных функций в конструкторах и деструкторах (C++).

Обратная связь


Спасибо за внимание и интерес к нашему продукту. Если у вас есть вопросы или пожелания, мы всегда готовы пообщаться с вами. Также мы будем рады вашим отзывам по новым функциям, реализованным в анализаторе.


Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Andrey Karpov. PVS-Studio 7.16, expanding the horizons: MISRA C, Visual Studio 2022, .NET 6.

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


  1. alan008
    11.12.2021 00:26

    Как сложилась судьба анализатора для Java, жив ли он и есть ли у него юзеры?


    1. Andrey2008 Автор
      11.12.2021 10:23

      Жив. Пока мы сосредоточились на другом.