PVS-Studio 7.16, взятие рубежей: MISRA C, Visual Studio 2022, .NET 6

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Релиз 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.


См. также:


  • Что такое MISRA и как её готовить;
  • Зачем нужен отчёт MISRA Compliance и как его получить в PVS-Studio?
  • Классификация предупреждений PVS-Studio согласно стандартам: MISRA C, MISRA C++.

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


Механизм отключения выдачи предупреждений на существующем коде (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.

Источник: https://habr.com/ru/company/pvs-studio/blog/594617/


Интересные статьи

Интересные статьи

Цель статьи, – показать примеры управления реализацией стратегии с помощью корпоративной единой информационной площадки на доступном инструменте, - Битрикс24. В статье на простом языке обсуждаются воз...
С выпуском .NET 5 миграция решений из .NET Framework увеличилась. В частности, мы начали наблюдать перемещение очень крупных решений. Чтобы обеспечить максимальное удобст...
Привет всем, программирующим окошки под MS VS. Проблема 1. Есть DataGridView, один из столбцов — DataGridViewComboBoxColumn; 2. Данные в грид закидываются через DataSource, как DataT...
С тех пор как Windows Forms был «Open Soursed» в конце 2018 года и в целом интерфейс был перенесен на .NET Core, и команда, и наши внешние участники были заняты исправлением старых ошибок...
В Челябинске проходят митапы системных администраторов Sysadminka, и на последнем из них я делал доклад о нашем решении для работы приложений на 1С-Битрикс в Kubernetes. Битрикс, Kubernetes, Сep...