Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
PVS-Studio 7.32: оптимизация анализа, н…

PVS-Studio 7.32: оптимизация анализа, новые плагины и многое другое

16 Авг 2024

Вышел новый релиз PVS-Studio — 7.32. Оптимизация анализа на C++, новые плагины и функциональность, и ещё много других обновлений! Больше подробностей в этой заметке.

1155_7_32_ru/image1.png

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

Оптимизация анализа инстанцирования шаблонов

В новом релизе было оптимизировано потребление памяти С++ анализатора при анализе инстанцирования шаблонов.

Сохранена возможность отключения анализа их инстанирования:

Изменение приоритета для флага sourceTreeRoot

Для утилиты PVS-Studio_Cmd.exe изменён приоритет флага ‑‑sourceTreeRoot, который задаёт корневую часть пути для конвертации путей из абсолютных в относительные.

Теперь этот флаг имеет приоритет над настройками:

Новая функциональность анализа для сборочной системы MSBuild

При анализе проектов для сборочной системы MSBuild добавлена возможность исключения из анализа проектов с помощью файлов конфигурации анализатора .pvsconfig.

Эта возможность реализуется включением флага V_EXCLUDE_PROJECT в файл конфигурации диагностик pvsconfig.

Использование pvsconfig в JetBrains CLion

Для плагина PVS-Studio для IDE JetBrains CLion добавлена возможность использования файлов конфигурации диагностик pvsconfig.

Подробнее про работу PVS-Studio в JetBrains Rider и CLion можно узнать в документации.

"Новый" плагин PVS-Studio в SonarQube

Начиная с версии SonarQube 10.1, в связи с изменениями в API платформы был разработан новый плагин для интеграции анализатора PVS-Studio в платформу SonarQube.

Теперь для использования PVS-Studio в SonarQube необходимо использовать новую версию плагина. Версия плагина PVS-Studio для более ранних версий SonarQube продолжает поддерживаться и получать обновления параллельно с новым плагином.

Подробнее про использование PVS-Studio в SonarQube можно узнать в документации.

Изменение синтаксиса пользовательских аннотаций

Изменён синтаксис пользовательских аннотаций в формате JSON для С++ анализатора PVS-Studio:

  • использование атрибутов nullable_initialized и nullable_uninitialized устарело;
  • вместо них введены атрибуты возвращаемого объекта not_null, maybe_null, always_null.

Поддержка разметки помеченных данных

В C++ анализаторе PVS-Studio добавлена возможность разметки источников и приёмников при анализе помеченных данных (taint-анализ).

Она реализована в механизме пользовательский аннотаций в формате JSON.

Поддержка новых сборочных систем для C++ анализатора

Добавлена поддержка интеграции анализатора PVS-Studio в проекты, использующие сборочные системы Bazel и Scons.

Поддержка новой версии Qt Сreator

Плагин PVS-Studio стал доступен для Qt Creator версий 14.x.

Прекращена поддержка плагина для версий Qt Creator 8.x. Мы стараемся обеспечивать обратную совместимость по поддержке последних версий плагинов для всех версий Qt Creator за два года с момента каждого релиза.

Анонс нового вебинара

1155_7_32_ru/image2.png

Мы анонсируем продолжение марафона вебинаров про "ГОСТ Р 71207–2024 — Статический анализ программного обеспечения". Темой в этот раз являются "Технологии анализа кода".

Это четвёртый из пяти вебинаров, посвящённых введённому в 2024 году стандарту по методологии статического анализа кода. Чтобы обеспечить поиск критических ошибок на высоком уровне, стандарт описывает методы анализа, которые должны быть реализованы в статических анализаторах.

Посмотрим на практических примерах, как работают технологии статического анализа и какие ошибки можно с их помощью выявлять.

Вебинар пройдёт 23 августа в 14:00 (по Москве).

Зарегистрироваться можно здесь.

Предыдущие вебинары по тематике ГОСТ доступны здесь

Новые диагностические правила

C, С++

  • V1111. The index was used without check after it was checked in previous lines.
  • V1112. Comparing expressions with different signedness can lead to unexpected results.
  • V2021. Using assertions may cause the abnormal program termination in undesirable contexts.

C#

  • V3201. Return value is not always used. Consider inspecting the 'foo' method.
  • V3202. Unreachable code detected. The 'case' value is out of the range of the match expression.
  • V3203. Method parameter is not used.

Java

  • V6115. Not all Closeable members are released inside the 'close' method.
  • V6116. The class does not implement the Closeable interface, but it contains the 'close' method that releases resources.
  • V6117. Possible overflow. The expression will be evaluated before casting. Consider casting one of the operands instead.

Статьи

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

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

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

Статьи общей тематики:

Доклады

Ошибки в коде: ожидания и реальность

Используя статический анализатор кода, пользователь может находить в коде вовсе не те ошибки, которые ожидал. Это не хорошо и не плохо, а интересная тема для обсуждения. Почему синтетические тесты врут, и почему их сложно составлять. Ложные ожидания при разработке и использовании статических анализаторов кода. Интересные закономерности в обнаруживаемых ошибках.

Посмотреть можно тут:

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

Если вы хотите получать новости о новых релизах, можете подписаться на рассылку от команды PVS-Studio по ссылке.

Популярные статьи по теме


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

Следующие комментарии next comments
close comment form
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

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

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

close form
check circle
Ваше сообщение отправлено.

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


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

  • Промоакции
  • Оповещения
  • Спам