Вышел новый релиз PVS-Studio — 7.35. Поддержка стандарта MISRA C, плагин для Qt Creator 15.X, анализ модифицированных файлов в Visual Studio, и это далеко не всё! Больше подробностей в этой заметке.
Загрузить актуальную версию PVS-Studio можно здесь.
Покрытие стандарта MISRA C
Мы начали работу по увеличению покрытия стандарта MISRA C. Первые восемь диагностических правил уже были реализованы в релизе 7.35. Полный список будет приведён ниже.
В этом году мы планируем покрыть не менее 85% стандарта MISRA C, а также поддержать последнюю версию MISRA C 2023.
Подробнее о классификации предупреждений PVS-Studio согласно стандартам MISRA можно прочитать здесь.
Поддержка плагина для Qt Creator версий 15.x и отказ от поддержки 9.x версий
Теперь плагин PVS-Studio стал доступен для Qt Creator версий 15.x.
В Qt Creator версии 15.0.0 возникает проблема при установке плагинов для конкретного пользователя с помощью "мастера установки". Путь, по которому устанавливаются плагины, не совпадает с путём, по которому эти плагины ищутся. Эта проблема исправлена с версии Qt Creator 15.0.1.
Также прекращена поддержка плагина для версий Qt Creator 9.x. Мы стараемся обеспечивать поддержку всех актуальных версий Qt Creator, вплоть до релизов двухгодичной давности.
Режим анализа модифицированных файлов добавлен в плагин для Visual Studio
Режим анализа модифицированных файлов был добавлен в плагин для Visual Studio. Он может быть полезен, когда нужно проанализировать только те файлы, которые были изменены относительно сохраненного состояния директории проекта.
Данный режим является альтернативой инкрементальному анализу и может быть полезен при проверке Pull Request'ов.
Также в релизе 7.35 мы добавили ещё один вариант запуска этого режима: анализироваться будут файлы, изменившиеся с предыдущего запуска анализа, а также файлы, в которых уже имеются неисправленные предупреждения.
Подробнее об этом методе анализа можно прочитать в документации.
Примечание. Недавно у нас вышла статья "Рецепты для регулярного статического анализа кода". В ней описаны возможные сценарии использования каждого из режимов анализа PVS-Studio. Рекомендуем ознакомиться.
Оптимизация C# анализатора
В C# анализаторе был оптимизирован анализ блоков кода c большим количеством идентификаторов переменных (500 и более). Ранее были возможны замедления анализатора в подобных ситуациях.
А если вы занимаетесь разработкой под Unity и хотите оптимизировать свой проект, то советуем ознакомиться со статей "PVS-Studio помогает оптимизировать проекты на Unity Engine".
Java и OWASP
С релиза 7.34 в рамках Java анализатора был взят курс на информационную безопасность. И к релизу 7.35 мы покрываем 7 из 10 категорий OWASP Top Ten 2021.
На данный момент мы умеем находить уязвимости из следующих категорий:
В следующих релизах мы продолжим реализовывать диагностики, обнаруживающие потенциальные уязвимости из перечня OWASP Top Ten.
Посмотреть, как PVS-Studio покрывает OWASP Top Ten 2021 для C++, C# и Java можно здесь.
Breaking Changes
Эти изменения ломают обратную совместимость с предыдущими версиями анализатора. Из-за этого вам может потребоваться изменить способ использования анализатора.
Изменения в Java-анализаторе:
‑‑license-path
в ядре Java анализатора и licensePath
в плагинах PVS-Studio для Maven и Gradle. Теперь информация о лицензии записывается по указанному в параметре пути, а не по стандартному месту расположения лицензии. Подробнее можно прочитать в документации;‑‑convert
в значении toSuppress
) нет срабатываний. Изменение для C, C++ анализатора:
Изменение для MSBuild С, С++ и С# проектов на Windows, запускаемых утилитой PVS-Studio_Cmd.exe
, и для С# проектов на Linux/macOS, запускаемых с помощью утилиты pvs-studio-dotnet
:
Новые диагностические правила
C, C++:
C#:
Java:
Анонс нового вебинара
C++ и неопределённое поведение
Мы пригласили в гости Дмитрия Свиридкина — автора книги "Путеводитель C++ программиста по неопределённому поведению". Обсудим грани, отделяющие корректный C++ код от некорректного, попросим рассказать историю написания книги, а также поговорим о развитии языка и его будущем.
Дата проведения: 27 февраля 14:00
Регистрация доступна по ссылке.
Статьи
Для тех, кто пишет на C++:
Не могу не отметить, что длинная и интересная эпопея со статьями про неопределённое поведение в этом релизе подошла к концу. Отдельно оставлю ссылку на статью-агрегатор, по которой удобно осуществлять навигацию между разными частями книги:
Путеводитель C++ программиста по неопределённому поведению.
Для тех, кто пишет на C#:
Для тех, кто пишет на Java:
Статьи общей тематики:
Ну и хотелось бы отдельно вынести статью, в которой мы рассказали про наши изменения за прошедший год: PVS-Studio в 2024 году.
Вебинары
В апреле 2024 года вышел ГОСТ Р 71207-2024, посвящённый разработке безопасного программного обеспечения, а точнее использованию статических анализаторов в этом процессе. Мы провели вебинар, в котором рассказали, что этот стандарт регулирует, и что нужно изменить в рабочем процессе, чтобы ему соответствовать.
Видео
Использование расширения PVS-Studio для Visual Studio Code
В этом релизе мы выпустили видео-туториал, в котором подробно показали, как вы можете пользоваться нашим расширением для Visual Studio Code, а именно:
Ознакомиться можно по ссылке:
Также этот видео-туториал доступен в документации "Использование расширения PVS-Studio для Visual Studio Code".
Критические ошибки
В этом видео мы кратко рассказали, что такое критическая ошибка по ГОСТ Р 71207-2024, и какие категории критических ошибок существуют. Было тяжело, но мы уместили тезисы из такой ёмкой темы в видео короткого формата.
"Вредные советы для C++ программиста" в PDF
Теперь книга Андрея Карпова "Вредные советы для C++ программиста" доступна в PDF. В ней в юмористическом формате разбираются реальные ситуации из практики программирования на C++, которые лучше избегать.
Условия получения электронной версии книги достаточно простые: подписаться на наш дайджест статей или Telegram бот. Все подробности по ссылке.
Хотите проверить свой проект с помощью PVS-Studio? Начните с этой страницы.
Если вы хотите получать новости о новых релизах, можете подписаться на рассылку от команды PVS-Studio по ссылке.