Вышел новый релиз 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++:
-
Путеводитель C++ программиста по неопределённому поведению: часть 1 из 11
-
Объявляю ошибку вида if (x = 42) вымирающей и заношу её в Красную книгу C и C++ багов
-
Проверка игрового движка qdEngine, часть первая: топ 10 предупреждений PVS-Studio
-
Проверка игрового движка qdEngine, часть вторая: упрощение C++ кода
-
Проверка игрового движка qdEngine, часть третья: дополнительная десятка багов
-
С++: освобождение ресурсов в деструкторах с использованием вспомогательных функций
Для тех, кто пишет на C#:
Для тех, кто пишет на Java:
Статьи общей тематики:
Доклады
В этом релизе наша команда поучаствовала во множестве конференций с интересными докладами, предлагаем ознакомиться:
Внедрение 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.
ссылка на оригинал статьи https://habr.com/ru/articles/822689/
Добавить комментарий