>
>
PVS-Studio 7.26: запуск анализа из VS C…

Сергей Васильев
Статей: 96

PVS-Studio 7.26: запуск анализа из VS Code и Qt Creator, интеграция с DefectDojo и не только

Вышел новый релиз PVS-Studio — 7.26. Запускайте анализ через плагины для VS Code и Qt Creator. Загружайте результаты анализа в DefectDojo. Больше подробностей об этих и прочих улучшениях — в этой заметке.

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

Visual Studio Code и Qt Creator: запуск анализа и подавление предупреждений

В плагинах PVS-Studio для Visual Studio Code и Qt Creator появилась возможность анализа C и C++ проектов. Кроме того, теперь плагины поддерживают функцию массового подавления предупреждений (с помощью suppress-файлов). Это позволит скрыть предупреждения анализатора на legacy-код и работать только с новыми предупреждениями, что упростит внедрение анализатора в проект. Подробнее об этом читайте в статье "Как внедрить статический анализатор кода в legacy проект и не демотивировать команду".

Запускать анализ можно на проектах, использующих следующие сборочные системы:

  • Visual Studio Code: CMake;
  • Qt Creator: CMake, QMake, Qbs.

Более подробная информация собрана в документации:

Интеграция с DefectDojo

Результаты анализа PVS-Studio теперь можно загружать в DefectDojo — DevSecOps-платформу для работы с инструментами обеспечения безопасности. Подробности интеграции описаны в документации.

Поддержка проектов на основе JDK 20

Java анализатор теперь работает с проектами, использующими JDK 20 и Java 20, сохраняя обратную совместимость с предыдущими версиями.

Новые возможности аннотации функций C и C++ кода

Аннотации функций дают PVS-Studio дополнительную информацию, которую он может использовать при анализе.

В C++ анализаторе доработан механизм пользовательского аннотирования функций. Теперь можно писать аннотации для функций на любом уровне вложенности. Кроме того, при аннотировании допускается использование имени функции без указания класса и пространства имён.

Инструкция по написанию аннотаций доступна здесь.

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

С++

  • V838. Temporary object is constructed during lookup in ordered associative container. Consider using a container with heterogeneous lookup to avoid construction of temporary objects.
  • V1100. Unreal Engine. Declaring a pointer to a type derived from 'UObject' in a class that is not derived from 'UObject' is dangerous. The pointer may start pointing to an invalid object after garbage collection.
  • V1101. Changing the default value of a virtual function parameter in a derived class may result in unexpected behavior.

C#

  • V3191. Iteration through collection makes no sense because it is always empty.
  • V4002. Unity Engine. Avoid storing consecutive concatenations inside a single string in performance-sensitive context. Consider using StringBuilder to improve performance.
  • V4003. Unity Engine. Avoid capturing variable in performance-sensitive context. This can lead to decreased performance.

Статьи

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

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

Больше статей вы найдёте в нашем блоге.

Записи докладов

Наша команда активно участвует в конференциях и митапах. Ниже перечислены записи некоторых докладов, выложенных в открытый доступ в последнее время.

**

Хотите проверить свой проект с помощью PVS-Studio? Начните с этой страницы.