Вышел новый релиз PVS-Studio — 7.36. Встречайте расширение поддержки MISRA, плагин для Qt Creator 16, расширение пользовательских аннотаций в C# и ещё много других обновлений! Больше подробностей в этой заметке.
Загрузить актуальную версию PVS-Studio можно здесь.
Выбор версии стандартов MISRA C и MISRA C++
В C и C++ анализаторе PVS-Studio была добавлена возможность задать версии стандартов MISRA C и MISRA C++. Выбрать используемую версию стандарта можно в настройках PVS-Studio плагина для Visual Studio.
Поддерживаемые версии стандартов: MISRA C 2012, MISRA C 2023, MISRA C++ 2008 и MISRA C++ 2023.
Расширение механизма пользовательских аннотаций в C#
В C# анализаторе был расширен механизм пользовательских аннотаций. До этого пользователи могли создавать аннотации только для taint-анализа.
В анализаторе существует ряд аннотаций для taint-анализа. С их помощью можно размечать источники и приёмники заражения. Также можно помечать методы/конструкторы, которые производят валидацию taint-данных. Таким образом, если taint-данные прошли валидацию, то при их попадании в приёмник анализатор не выдаст предупреждение.
Теперь появилась возможность с помощью пользовательских аннотаций указать анализатору информацию, которая необходима не только для taint-анализа. Например, можно указать, что метод может вернуть null, что возвращаемое значение метода нужно использовать или что аргумент метода не должен быть равен null, и ещё много чего.
Подробнее об этом можно прочитать в нашей документации.
Плагин PVS-Studio для Qt Creator 16
Плагин PVS-Studio теперь доступен для Qt Creator версий 16.x, а вот поддержка для версий Qt Creator 10.x прекращена. Мы стараемся обеспечивать обратную совместимость по поддержке последних версий плагинов для всех версий Qt Creator за два года с момента каждого релиза.
Подробнее об использовании PVS-Studio в Qt Creator можно узнать в нашей документации.
Доработки флагов файлов конфигурации
pvs-studio-analyzer
добавлен новый флаг ‑‑apply-pvs-configs
. С помощью него включается режим автоматического поиска и применения файлов конфигурации правил .pvsconfig
для проверяемых исходных файлов. Поиск самих файлов конфигурации правил происходит в каталоге исходного файла и во всех родительских каталогах вплоть до корневой папки проекта, которая указывается с помощью нового флага ‑‑project-root
.
Подробнее об этом можно прочитать в нашей документации.
‑‑analysis-paths
в утилите командной строки pvs-studio-analyzer
получил новый режим isolate-settings
. Он позволяет изолировать настройки, назначаемые с помощью файлов конфигурации правил .pvsconfig
внутри заданной директории. Настройки, лежащие в родительских для этой директории папках, в этом режиме игнорируются.
Подробнее об этом можно прочитать в нашей документации.
Также для этого режима были добавлены настройки для файла .pvsconfig
: //V_ANALYSIS_PATHS isolate-settings
и //V_ISOLATE_CURRENT_DIR
. Подробнее об этом можно прочитать в соответствующем разделе документации.
Обновление документации
Была добавлена документация по использованию анализатора PVS-Studio в сервисе для хранения исходного кода GitFlic, а также в DevSecOps платформах Hexway и AppSec.Hub.
Breaking Changes
Эти изменения ломают обратную совместимость с предыдущими версиями анализатора. Из-за этого может потребоваться изменить способ использования анализатора.
compile_commands.json
в утилите командной строки pvs-studio-analyzer
теперь игнорируются все вызовы не компиляторов. Для работы с компиляторами, имеющими нестандартные имена, которые не определяются PVS-Studio по умолчанию, можно использовать флаг ‑‑compiler
. Подробнее об этом можно узнать в соответствующем разделе нашей документации.Полный список изменений вы сможете найти на странице истории версий PVS-Studio.
Новые диагностические правила
C, С++
C#
Java
Статьи
Для тех, кто пишет на C++:
Для тех, кто пишет на C#:
Для тех, кто пишет на Java:
Статьи общей тематики:
Доклады
Модельные варианты ошибок в статических анализаторах
ГОСТ Р 71207, касающийся статического анализа кода, вводит термин "модельный вариант" ошибок. Дело в том, что невозможно в общем виде искать такие ошибки, как неопределенное поведение, разыменование нулевых указателей или опечатки. Но искать их нужно. Как же создатели анализаторов выходят из этой ситуации? Как раз с помощью понятия модельных вариантов ошибок (даже не зная, что они так называются), сводя поиск ошибки общего типа к задаче поиска ошибок множества подтипов.
Андрей Карпов предлагает заглянуть внутрь PVS-Studio и посмотреть, как происходит поиск ошибок, несмотря на технологические ограничения методологии статического анализа.
Посмотреть можно тут:
C++ и неопределённое поведение
Мы пригласили в гости Дмитрия Свиридкина — создателя книги "Путеводитель C++ программиста по неопределённому поведению". Обсудили грани, отделяющие корректный C++ код от некорректного, попросили рассказать историю написания книги, поговорили о развитии языка и его будущем.
Посмотреть можно тут:
SAST как Quality Gate
Использование SAST в качестве Quality Gate — это не просто тренд, а необходимость для современных разработчиков, стремящихся создавать надёжные и безопасные приложения. Рассказали, как внедрение этих практик может значительно повысить уровень вашего проекта.
Посмотреть можно тут:
Внедрение процессов безопасной разработки. Интеграция PVS-Studio и SGRC SECURITM
Совместно с экспертом SECURITM Евгенией Карповой мы поговорили о том, как обеспечить соблюдение требований ГОСТ в области безопасной разработки программного обеспечения.
Показали реальные примеры использования PVS-Studio и SECURITM, дали рекомендации по настройке инструментов и рассказали, как оптимизировать процессы разработки для достижения высокого уровня безопасности.
Посмотреть можно тут:
ГОСТ Р 71207–2024. Безопасная разработка и статический анализ
Использование статических анализаторов кода является одним из условий разработки безопасного ПО.
Но возникали вопросы: какие инструменты выбрать? что они должны уметь? как "правильно" проводить анализ и организовать процесс?
С ответами поможет новый ГОСТ, вышедший в апреле 2024 года — ГОСТ Р 71207-2024: "Статический анализ программного обеспечения".
В докладе рассмотрели самые важные темы ГОСТа, его актуальность, новые требования, подходы к анализу и многое другое.
Посмотреть можно тут:
Ищем ошибки в начале, в середине и в конце разработки
В докладе подняли тему поиска ошибок, качества кода и безопасной разработки.
Поговорили о технологиях статического анализа и SAST-инструментах как способах поиска потенциальных ошибок и уязвимостей на ранних этапах разработки и всем цикле разработки ПО. Разобрали особенности этих инструментов, как они работают, а также кому это может пригодиться и как подобрать инструмент.
Посмотреть можно тут:
Как статический анализ дополняет тестирование продукта
Разберем тему использования статического анализа в связке с тестированием. Как он работает на реальных примерах, какие примеры решает, а также как может помочь оптимизировать код проекта. Немного заглянем в сторону безопасности, уязвимостей и стандартов.
А еще пару лайфхаков при использовании инструмента.
Как искать ошибки и уязвимости во время разработки
Многие слышали и о статических анализаторах, и о SAST-инструментах, но в чём же реально их польза? Ну, во-первых, они могут выявить потенциальные ошибки и уязвимости на ранних этапах разработки и всём цикле ПО, но как это проверить? Рассказали в докладе.
Посмотреть можно тут:
Роли в IT: Developer Advocate
Как говорил современный тимлид: "Понапишут свой код, а потом адвокатов ищут". Кто такой Developer Advocate и чем он отличает от DevRel и маркетолога? Как сделать так, чтобы тебе платили деньги за то, что ты не пишешь код? Какие перспективы есть у человека на этой должности? Узнаете в этом выпуске.
Посмотреть можно тут:
Хотите проверить свой проект с помощью PVS-Studio? Начните с этой страницы.
Если вы хотите получать новости о новых релизах, можете подписаться на рассылку от команды PVS-Studio по ссылке.
Français
434