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? Вся правда о технологии статического анализа".

Записи вебинаров доступны здесь: "Базовые сценарии интеграции SAST решения" и "Вся правда о технологии статического анализа"

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

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

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

Статьи

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

  • Сколько UB в моём компиляторе?

  • Путеводитель C++ программиста по неопределённому поведению: часть 1 из 11

  • Объявляю ошибку вида if (x = 42) вымирающей и заношу её в Красную книгу C и C++ багов

  • Какие ошибки есть в коде LLVM?

  • 11 мгновений ReactOS: user mode становится лучше?

  • Подборка крутых докладов по С++ за 2023 год

  • Проверка игрового движка qdEngine, часть первая: топ 10 предупреждений PVS-Studio

  • Проверка игрового движка qdEngine, часть вторая: упрощение C++ кода

  • Проверка игрового движка qdEngine, часть третья: дополнительная десятка багов

  • С++: освобождение ресурсов в деструкторах с использованием вспомогательных функций

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

  • Garnet. Хранит ли баги кэш-хранилище от Microsoft?

  • Кошмар нефалема. Исследуем ошибки в коде эмулятора сервера Diablo 3

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

  • Как шаблонный метод может сломать ваш Java код

  • Ловушки volatile, DCL и синхронизации в Java

  • 21 ошибка в 21-й версии Apache NetBeans

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

  • Улыбка сквозь баги

Доклады

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Gleb Aslamov. PVS-Studio 7.31: new C++ analyzer features, enhanced user annotations, and more.

Материал опубликован при поддержке сайта habr.com
Комментарии

    Актуальные новости по теме "Array"