Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
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
Ваше сообщение отправлено.

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


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

>
>
PVS-Studio 7.30: улучшение работы с Unr…

PVS-Studio 7.30: улучшение работы с Unreal Engine, новые возможности C++ анализатора и многое другое

17 Апр 2024

Вышел новый релиз PVS-Studio — 7.30. Были добавлены пользовательские аннотации, появились новые возможности, различные улучшения работы PVS-Studio с Unreal Engine, и ещё много других изменений! Больше подробностей в этой заметке.

1116_7_30_ru/image1.png

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

Поддержка пользовательских аннотаций в C++ анализаторе

В C++ анализаторе PVS-Studio был реализован механизм пользовательских аннотаций — способ разметки типов и функций в формате JSON с целью дать анализатору дополнительную информацию.

Этот режим позволяет пометить функцию как опасную для использования, определить собственный тип как nullable и многое другое. Благодаря этой информации анализатор может находить больше ошибок в коде.

Больше об этом режиме можно узнать в документации.

Улучшение работы с Unreal Engine

В этом релизе мы постарались улучшить опыт работы при использовании PVS-Studio с Unreal Engine. Было внесено множество улучшений, доступных начиная с версии UE 5.4:

  • Реализована многофайловая навигация по предупреждениям, содержащимся в отчёте анализатора PVS-Studio;
  • Исправлена ошибка, приводящая к падению анализа в Unreal Engine 5.3 при запуске анализа через флаг компиляции -StaticAnalyzer=PVSStudio.
  • Поддержка отключения стандартного вывода Unreal Build Tool в консоль при проведении анализа. Это может значительно сократить время постобработки отчёта анализатора в проектах с большим количеством предупреждений;
  • Анализ автоматически сгенерированных файлов .gen.cpp теперь по умолчанию отключён. Включение анализа таких файлов возможно через специальную настройку;
  • Добавлена настройка, позволяющая запускать анализатор только на файлах проекта, пропуская модуль ядра Unreal Engine. Использование этой настройки позволяет значительно ускорить процесс анализа.

Новые возможности C++ анализатора

  • Для C и C++ анализатора PVS-Studio был реализован анализ стандартного типа bool, появившегося в стандарте C23 языка С. Это улучшило поддержку MISRA Essential Type Model, а также диагностик, основанных на MISRA Essential Type Model.
  • Для C++ анализатора PVS-Studio была улучшена работа со стандартной библиотекой С++, а также добавлена поддержка большего количества интринзиков компилятора, например, __add_lvalue_reference, __add_pointer, __add_rvalue_reference и других.
  • Была добавлена поддержка GNU RISC-V GCC Toolchain для платформы RISC-V для C++ анализатора PVS-Studio.

Доработка системы анализа отдельных файлов

Была расширена система анализа отдельных файлов с помощью флага --sourceFiles и повторной генерации кэша зависимостей проекта.

Теперь данный режим устойчив к ситуациям, когда кэш зависимостей находится в состоянии, не соответствующем структуре проекта. Такое может случиться, например, в случае использования множественных веток в системе контроля версий.

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

Больше об этом режиме можно узнать в документации.

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

C, С++

  • V1105. Suspicious string modification using the 'operator+='. The right operand is implicitly converted to a character type.
  • V1106. Qt. Class inherited from 'QObject' does not contain a constructor that accepts a pointer to 'QObject'.
  • V1107. Function was declared as accepting unspecified number of parameters. Consider explicitly specifying the function parameters list.

C#

  • V3196. Parameter is not utilized inside the method body, but an identifier with a similar name is used inside the same method.
  • V3197. The compared value inside the 'Object.Equals' override is converted to a different type that does not contain the override.
  • V3198. The variable is assigned the same value that it already holds.

Java

  • V6110. Using an environment variable could be unsafe or unreliable. Consider using trusted system property instead.
  • V6111. Potentially negative value is used as the size of an array.
  • V6112 . Calling the 'getClass' method repeatedly or on the value of the '.class' literal will always return the instance of the 'Class' type.

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

1116_7_30_ru/image2.png

Недавно мы провели наш новый вебинар на тему "Трудности при интеграции SAST, как с ними справляться", где разобрали основные проблемы, возникающие при интеграции SAST-инструментов на legacy-проект.

Запись вебинара доступна здесь

Но это была лишь первая часть, на которой мы разобрались с теорией, а значит пора переходить к практике!

Мы анонсируем продолжение темы интеграция SAST-решений в новом вебинаре "Базовые сценарии интеграции SAST-решения в legacy-проект на примере PVS-Studio". На нём мы рассмотрим базовый сценарий интеграции PVS-Studio, постараемся не утонуть в сообщениях анализатора и покажем, как можно интегрировать PVS-Studio в CI систему.

Вебинар пройдёт 18 апреля в 14:00 (МСК). Зарегистрироваться можно здесь.

Статьи

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

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

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

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

Доклады

В этом релизе наша команда очень активно участвовала в различных мероприятиях. Мы проводили доклады, подкасты и даже интервью! Давайте пройдёмся по самым интересным:

Как статический анализ дополняет TDD

Разные методологии предотвращения и поиска ошибок не конкурируют, а дополняют друг друга. TDD — отличная методология, но и у неё есть недостатки, которые может компенсировать статический анализ кода.

Об этом и многом другом вам расскажет сооснователь PVS-Studio Андрей Карпов в своём докладе:

Подкаст linkmeup

А ещё Андрей Карпов заглянул на подкаст linkmeup, где побеседовал на тему стартапов, форс-мажоров и IT-сферы в России.

Послушать можно тут:

Интервью с Евгением Рыжковым

В этом релизе сооснователь PVS-Studio Евгений Рыжков поучаствовал в интервью с Егором Бугаенко — автором серии книг "Элегантные объекты". Обсудили тему статического анализа, ситуацию на рынке и перспективы технологии.

Предлагаем послушать:

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

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

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


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

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