Уже наступил новый 2026 год, а это значит, пришло время вспомнить, что же интересного сделала команда PVS-Studio за 2025 год. Усаживайтесь поудобнее, мы начинаем наш вечер воспоминаний.

В прошлом году вышла новая версия интегрированной среды разработки от Microsoft — Visual Studio 2026. Так же, как и для предыдущих версий IDE, для новинки появился плагин PVS-Studio, позволяющий анализировать С, C++ и C# проекты на основе сборочной системы MSBuild.
Подробнее о том, как использовать PVS-Studio в Visual Studio, можно прочитать в нашей документации.

За прошедший год плагин PVS-Studio для Qt Creator стало возможно использовать аж в четырёх свежих версиях среды разработки. Поддержана работа плагина с Qt Creator 15, 16, 17 и 18.
Однако не обошлось и без версий, которые перестали поддерживаться. Мы стараемся обеспечивать обратную совместимость по поддержке последних версий плагинов для всех версий Qt Creator за два года с момента каждого релиза, поэтому в 2025 году была прекращена поддержка Qt Creator 9, 10, 11 и 12.
Также в 2025 году плагин PVS-Studio для Qt Creator был портирован на комплект разработчика для операционной системы "Нейтрино" на Windows. Из него поддержана работа с Qt Creator 6 (Qt 5.14.2).
Подробнее о работе плагина PVS-Studio для Qt Creator можно прочитать в нашей документации.
В 2025 году плагин PVS-Studio стал доступен в интегрированной среде разработки OpenIDE. С его помощью можно анализировать проекты, написанные на Java.
Вместе с коллегами из OpenIDE мы также написали статью с проверкой исходного кода среды, а ещё выпустили целый подкаст, в котором обсудили, что за зверь такой этот OpenIDE:
Об использовании плагина PVS-Studio для OpenIDE можно прочитать в нашей документации.
В плагине PVS-Studio для среды разработки Visual Studio Code в 2025 году появилась возможность проводить анализ проектов на основе мониторинга компиляции.
В таком режиме плагин отслеживает запуск процессов, соответствующих целевому компилятору, и собирает информацию об их окружении. Затем плагин, получив всю необходимую информацию, может запустить анализ проекта.
Сейчас подобный функционал доступен только на Windows, но мы планируем добавить его и на Linux.
В 2025 году мы заключили технологическое партнёрство с самыми различными ASOC-инструментами, чтобы анализатор PVS-Studio можно было легко внедрять в конвейер разработки, используя те же инструменты, что и ранее.
В итоге результаты анализа PVS-Studio стало возможным интегрировать в:
В прошлом году была улучшена работа PVS-Studio с различными сборочными системами.
Появилась возможность использовать синтаксис Kotlin DSL при написании скриптов сборки для сборочной системы Gradle, использующих плагин PVS-Studio. Соответствующая инструкция появилась в документации.
Для сборочной системы MSBuild появилась возможность анализировать проекты на основе файлов решений в формате .slnf и .slnx. О том, чем .slnx отличается от .sln, мы писали в нашем блоге.
В 2024 году в плагинах PVS-Studio для Visual Studio и Visual Studio Code появилась возможность включить отображение специальных SAST-идентификаторов, отображающих принадлежность срабатывания к категориям критических ошибок из ГОСТ Р 71207-2024.
В 2025 году подобный функционал появился в плагине для SonarQube и в файлах конфигурации анализа .pvsconfig.
Помимо этого, была полностью переработана концепция, по которой анализатор помечает срабатывания как критические по ГОСТу. Ранее одно правило чётко соответствовало одному идентификатору критических ошибок, теперь же система стала динамической: даже одно предупреждение анализатора может относиться к нескольким категориям критических ошибок.
Если вы интересуетесь темой безопасной разработки, в прошлом году мы начали большой цикл из 25 вебинаров, посвящённых стандарту ГОСТ Р 56939-2024. Подробнее можно узнать на этой странице.
В 2024 году мы добавили возможность добавления пользовательских аннотаций кода в формате JSON для C и C++ анализатора. Эти аннотации дают анализатору дополнительный контекст об использовании различных сущностей, позволяя улучшить качество анализа.
В 2025 году подобная возможность появилась в Java и C# анализаторах PVS-Studio.
Также мы продолжаем работать над документацией продукта, чтобы у наших пользователей не возникало проблем при использовании статического анализатора PVS-Studio.
Например, в 2025 году раздел документации об использовании анализатора для анализа Unreal Engine проектов дополнился разделом про анализ с использованием системы распределённой сборки Unreal Build Accelerator.
Помимо дополнения документации нововведениями, мы не забываем и про старые разделы. Например, в прошедшем году была полностью переработана документация об использовании плагина PVS-Studio для интегрированной среды разработки Visual Studio Code.
Теперь поговорим об изменениях, которые произошли в C и C++ анализаторе PVS-Studio.
2025 год ознаменован улучшением технологий, используемых в C и C++ анализаторе: мы подготовили фундамент для поддержки новых стандартов языков и развития data flow и taint-анализа.
Олег Лысый,
руководитель отдела разработки C и C++ анализатора
В 2025 году мы наконец-то выпустили новый парсер для C и C++ кода, который разрабатывался нашей командой больше года. Это большое обновление, пусть и незаметное для большинства пользователей, служит фундаментом для дальнейших усовершенствований анализатора.
В ходе расширенного периода тестирования (EAP), прошедшего весной, у нас получилось достигнуть стабильной работы нового парсера на большом количестве реальных проектов, однако для обеспечения обратной совместимости была сохранена возможность переключения на предыдущую версию.
Если вдруг вы столкнулись с проблемами при использовании нового парсера, не забывайте сообщать о них в поддержку. Это поможет нам ускорить финальную стабилизацию такого большого нововведения.
Благодаря обращениям пользователей мы уже произвели множество различных доработок. Например, исправили критические падения при анализе проектов на Unreal Engine, а также улучшили работу нового парсера при работе с шаблонами.
Помимо улучшений, связанных с новым парсером, были и другие.
Например, в C и C++ анализаторе механизм анализа помеченных данных был распространён на диагностические правила поиска других типов ошибок: деления на ноль, побитового сдвига на недостоверное значение, выхода за границу буфера, знакового переполнения и передачи аргументом недостоверного значения.
Также в механизме анализа помеченных данных были и другие изменения, например, отслеживание заражённости при операторе % стало корректным, а также была улучшена обработка taint-статусов в ветвлениях.
Все произведённые в механизме taint-анализа изменения в итоге увеличили количество случаев, в которых анализатор может найти потенциальные уязвимости. А подробнее о том, как работает taint-анализ в PVS-Studio, можно прочитать в этой статье.
Также была улучшена поддержка различных стандартов языка:
restrict и _Atomic, спецификаторы _Atomic(T) и _Thread_local;thread_local, ключевые слова constexpr и alignas.Помимо этого, мы активно работаем с фидбеком от пользователей и исправляем недочёты в работе анализатора. Так, например, по наводкам от пользователей мы поправили внутренние аннотации функций std::min, std::max, std::unique_ptr<T[]>::reset и std::unique_ptr<T[]>::release.
В прошедшем году мы начали работы по улучшению покрытия стандарта MISRA C 2023 диагностическими правилами C и C++ анализатора.
Подробнее о классификации предупреждений PVS-Studio согласно стандартам MISRA можно прочитать на этой странице. Там же, кстати, появилось разделение по версиям стандарта, а также отображение степени покрытия стандарта диагностическими правилами анализатора.
В 2025 году была поддержана генерация отчёта MISRA Compliance с учётом новых поддерживаемых версий стандарта. Подробнее об этом можно прочитать в нашей документации.
К февральскому релизу PVS-Studio 7.41 стандарт MISRA C 2023 будет покрыт на 80-85%.
Изменения в прошедшем году коснулись и файлов конфигурации анализа .pvsconfig.
В кроссплатформенную утилиту для проверки C и C++ проектов pvs-studio-analyzer был добавлен новый флаг ‑‑apply-pvs-configs. С помощью него включается режим автоматического поиска и применения файлов конфигурации анализа .pvsconfig для проверяемых исходных файлов. Сами файлы конфигурации правил ищутся в каталоге исходного файла и во всех родительских каталогах вплоть до корневой папки проекта, которая указывается с помощью нового флага ‑‑project-root.
Был добавлен механизм перезаписи более приоритетных настроек с помощью опции //V_OVERRIDE ON. Эта опция позволяет поддерживать сложные сценарии, где для каких-то частей проекта нужны другие значения настроек, указанных в файлах .pvsconfig с более высоким приоритетом.
Подробнее о файлах конфигурации анализа .pvsconfig можно прочитать в нашей документации.
В 2025 году в нашем блоге вышло 37 статей, посвящённых C и C++. Вот подборка некоторых из них:
Теперь перейдём к изменениям в C# анализаторе PVS-Studio!
В 2025 году мы уделили время созданию специализированных диагностических правил для работы с проектами на основе Unity. На данный момент в C# анализаторе более 20 специализированных диагностик для выявления проблем оптимизации и ошибок общего назначения.
Также в этом году была проведена работа по улучшению части диагностических правил C# анализатора, входящих в первую сотню. И, конечно же, был поддержан .NET 10 и C# 11.
Артём Ровенский,
руководитель отдела разработки C# анализатора
В последнем релизе прошлого года уже по традиции мы поддержали анализ проектов на свежей версии .NET 10.
В 2024 году в ходе поддержки проектов на .NET 9 мы изменяли системные требования анализатора на всех платформах (после версии 7.34 стало необходимо наличие .NET 9 SDK в системе).
В 2025 же году изменение системных требований коснулось только Linux и macOS: с версии PVS-Studio 7.40 для анализа C# проектов потребуется .NET 10 SDK.
В прошлом году мы также занимались и улучшением качества анализа для C# проектов.
Например, вернулись к самым первым диагностическим правилам C# анализатора и доработали их. В этих правилах были поддержаны новые конструкции языка, а также улучшены механизмы PVS-Studio по выявлению проблем в коде.
Так, например, была доработана диагностика V3001. Теперь она корректнее определяет случаи, когда дополнительные скобки ни на что не влияют. Один из найденных обновлённым диагностическим правилом баг подробно описан в этой статье.
Был оптимизирован анализ блоков кода с большим количеством идентификаторов переменных (500 и более). Ранее в подобных ситуациях были возможны замедления анализатора.
Также в C# анализаторе был добавлен учёт помеченных данных при выходе за границу массива, определении переполнения и потенциального деления на 0.
За год C# команда выпустила более 20 статей. Вот подборка самых интересных из них:
Ну и, наконец, дошла очередь до Java анализатора!
В Java анализаторе был реализован taint-механизм, что позволило сделать много диагностических правил, направленных на защищённость. Сейчас мы покрываем 9 из 10 категорий OWASP, а к следующему (февральскому) релизу в Java анализаторе будет 40 security-диагностик.
Константин Волоховский,
руководитель отдела разработки Java анализатора
В 2024 году в Java анализаторе появился механизм taint-анализа. Тогда же вышло и первое диагностическое правило V5309, в рамках которого происходит поиск потенциальных SQL-инъекций.
В 2025 же году пришло время использовать этот механизм по полной!
Мы провели большие работы по покрытию Java анализатором категорий дефектов безопасности из OWASP Top 10 2021, для чего было выпущено множество новых диагностических правил, целью которых является поиск потенциальных уязвимостей. Сейчас диагностики Java анализатора покрывают 9 из 10 категорий.
Подробнее о классификации диагностических правил PVS-Studio согласно OWASP Top 10 можно узнать на этой странице.
В 2025 году в нашем блоге вышло 37 статей, посвящённых Java. Вот подборка некоторых из них:
Мы постарались рассказать обо всех важных нововведениях в анализаторе за 2025 год, но даже так мы охватили лишь часть. Полный список изменений можно найти на странице истории релизов.
А если вам интересно своевременно узнавать об обновлениях в анализаторе, подписывайтесь на наши рассылки.
В 2026 нас ждёт ещё больше всего интересного, следите за новостями!
0