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

PVS-Studio 7.19: что новенького?

24 Июн 2022

Недавно вышла новая версия PVS-Studio – 7.19. В этой заметке расскажем, что нового появилось в анализаторе, какие разделы документации мы улучшили, а также о том, что почитать, посмотреть и... во что поиграть.

0958_Release_7_19_ru/image1.png

Улучшения

Поддержка Unreal Engine 5

С помощью PVS-Studio можно анализировать проекты на основе Unreal Engine 5. В целом анализ выполняется так же, как и для Unreal Engine 4. Разница описана в документации.

Баг в Unreal Engine 5: Unable to find PVS-Studio

В Unreal Engine 5 есть баг, из-за которого Unreal Build Tool не находит PVS-Studio по стандартному пути установки. Pull request для исправления этой проблемы уже сделан, фикс войдёт в одну из следующих версий движка.

Временное решение проблемы описано в документации.

Работа с компиляторами QNX

В C++ анализаторе улучшили работу с компиляторами QNX:

  • лучше определяем целевую платформу компиляторов QNX Momentics QCC. Это позволило сократить количество ложных срабатываний при анализе кода под QNX;
  • поддержали последние версии компилятора QNX.

Плагин PVS-Studio для SonarQube

Плагин PVS-Studio для SonarQube теперь поддерживает JSON отчёты. Так как отчёты PVS-Studio в формате JSON доступны на всех платформах, это упрощает кроссплатформенные сценарии работы.

Утилита оповещения разработчиков (blame-notifier)

Утилита blame-notifier используется для оповещения разработчиков и менеджеров об ошибках в коде, которые нашёл PVS-Studio. Это реализовано через рассылку писем с предупреждениями анализатора.

Теперь к таким письмам можно прикреплять файлы (например, полный отчёт анализатора), а также изменять тему письма.

Документацию по утилите blame-notifier можно найти здесь.

Документация

Отчёты анализатора и утилиты конвертации

Результаты анализа PVS-Studio с помощью специальных утилит (PlogConverter.exe, plog-converter) можно конвертировать в различные форматы. В одном документе мы описали:

  • форматы, в которые можно сконвертировать отчёты, и назначение каждого из них;
  • утилиты конвертации отчётов и флаги запуска;
  • примеры команд конвертации.

Найти эту информацию теперь можно здесь.

Unreal Engine

Мы обновили документацию по использованию Unreal Engine и PVS-Studio. В ней описано:

  • как проверять проекты из IDE и из командной строки;
  • как внедрить анализатор в проект, чтобы не видеть предупреждений на legacy-код;
  • как исключать файлы и директории из анализа;
  • особенности использования анализатора с разными версиями движка.

Документация доступна по ссылке.

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

C, C++

  • V834. Incorrect type of a loop variable. This leads to the variable binding to a temporary object instead of a range element.
  • V835. Passing cheap-to-copy argument by reference may lead to decreased performance.
  • V1083. Signed integer overflow in arithmetic expression. This leads to undefined behavior.
  • V1084. The expression is always true/false. The value is out of range of enum values.
  • V1085. Negative value is implicitly converted to unsigned integer type in arithmetic expression.

C#

  • V3175. Locking operations must be performed on the same thread. Using 'await' in a critical section may lead to a lock being released on a different thread.
  • V3176. The '&'= or '|=' operator is redundant because the right operand is always true/false.
  • V5622. OWASP. Possible XPath injection. Potentially tainted data is used in the XPath expression.
  • V5623. OWASP. Possible open redirect vulnerability. Potentially tainted data is used in the URL.

Посмотреть, почитать и... поиграть

Посмотреть

Heisenbug 2021: о безопасности

Прошлой осенью мы были на конференции Heisenbug 2021 Moscow, где разговаривали о безопасности, SAST-решениях, taint-анализе и не только.

Недавно на YouTube выложили записи докладов с конференции. Вот ссылки на те, где мы принимали участие:

Life EXE: чистим исходный код проекта на Unreal Engine 5 с помощью PVS-Studio

Автор канала Life EXE рассказывает про работу с проектами на Unreal Engine. В одном из последних видео он на примере PVS-Studio показал, как статический анализ может быть полезен для проектов на основе Unreal Engine.

Посмотреть видео можно здесь.

Почитать

Улучшения PVS-Studio

Мы не только улучшаем анализатор, но и рассказываем, что конкретно, как и зачем делаем. Почитать об этом можно в статьях:

Проверка кода проектов

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

Поиграть

Мы сделали игру, в которой можно проверить свою внимательность и поискать ошибки в коде. Пока доступна версия с ошибками в коде только на C++. Интересно поиграть во что-то подобное для C#? Пишите в комментариях. :)

Саму игру найти можно здесь.

Попробовать PVS-Studio 7.19

Загрузить последнюю версию анализатора можно здесь. Если у вас нет лицензионного ключа, не забудьте запросить триал.

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


Комментарии (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
Ваше сообщение отправлено.

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


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

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