>
>
PVS-Studio 7.31: новые возможности C++ …

Глеб Асламов
Статей: 13

PVS-Studio 7.31: новые возможности C++ анализатора, расширение функционала пользовательских аннотаций

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

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

Расширен режим анализа отдельных файлов

В утилите pvs-studio-analyzer была расширена система анализа отдельных файлов с помощью флага ‑‑source-files.

Больше про флаги запуска анализа можно узнать здесь.

Теперь использование утилиты в условиях отличия кэша зависимостей компиляций для C и C++ файлов от структуры проекта стало более удобным.

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

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

Новая возможность настройки конфигурационных файлов

Для C и C++ анализатора PVS-Studio появилась возможность установки настроек в конфигурационных файлах .pvsconfig в зависимости от версии анализатора, использующего данные файлы.

Подробнее можно узнать в документации.

Расширение функционала пользовательских аннотаций

Для C и C++ анализатора в систему пользовательских аннотаций была добавлена возможность задавать диапазоны допустимых и недопустимых значений для целочисленных параметров функций.

Подробнее про систему пользовательских аннотаций и нововведения можно узнать в документации.

Обновление документации CircleCI

Была доработана и актуализирована документация об использовании анализаторов PVS-Studio в облачной CI-системе CircleCI.

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

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

C, С++

  • V1108. Constraint specified in a custom function annotation on the parameter is violated.
  • V1109. Function is deprecated. Consider switching to an equivalent newer function.
  • V1110. Constructor of a class inherited from 'QObject' does not use a pointer to a parent object.

C#

  • V3199. Index from end operator used with the value that is less than or equal to zero. Index is out of bound.
  • V3200. Possible overflow. The expression will be evaluated before casting. Consider casting one of the operands instead.

Java

  • V6113. Suspicious division. Absolute value of the left operand is less than the value of the right operand.
  • V6114. The 'A' class containing Closeable members does not release the resources that the field is holding.

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

В этом релизе мы провели целых два вебинара на следующие темы: "Базовые сценарии интеграции SAST решения в legacy-проект на примере PVS-Studio" и "Что скрывают Blender и YTsaurus? Вся правда о технологии статического анализа".

Мы анонсируем продолжение марафона вебинаров! Темой в этот раз являются линтеры. В новом вебинаре "C++ ЛИНТЕРЫ — ХОРОШО, НО НЕДОСТАТОЧНО" мы разберёмся, как они работают, почему линтеры остались в прошлом и какие технологии требуются для нахождения тех или иных ошибок.

Вебинар пройдёт 20 июня в 14:00 (МСК).

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

Статьи

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

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

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

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

Доклады

В этом релизе наша команда поучаствовала во множестве конференций с интересными докладами, предлагаем ознакомиться:

Внедрение SAST без слёз

Статический анализ кода является полезным инструментом в руках разработчика, но неверное знакомство может испортить первый опыт, напугать и демотивировать команду. В этом докладе C# разработчик Глеб Асламов разберёт основные проблемы при интеграции статического анализатора в существующий проект, способы их решения и варианты для повышения эффективности анализа.

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

Статический анализ и C++ — от ненависти до любви

В этом докладе С++ разработчик Алексей Горшков расскажет про многие возможности статического анализа, а также за что программисты, преуспевшие в использовании технологий, её уважают. Будет приведено много интересных примеров из нашей практики, приглашаем ознакомиться:

SAST как правая рука разработчика

В чём важность раннего обнаружения ошибок? Как этого добиться? Об этом, а также про опасность уязвимостей и способы борьбы с ними, расскажет C# разработчик Глеб Асламов.

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

Новая серия роликов

А ещё у нас начинается новый цикл роликов, посвящённый мини-книге Андрея Карпова "60 антипаттернов для С++ программиста"!

Если не терпится узнать остальные антипаттерны сразу, можете ознакомиться с полной версией у нас в блоге.

Если вы хотите создавать эффективные, надёжные и хорошо структурированные программы на языке C++, то знание ошибок и неэффективных подходов поможет вам в этом. Теперь и в видео формате:

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

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