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

0 0 голоса
Рейтинг новости
2047
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии