BIS Journal №4(59)2025

22 декабря, 2025

Статический анализатор PVS-Studio за пределами РБПО

Публикации этого журнала во многом ориентированы на тему разработки безопасного ПО (РБПО), рассматривая методологии и продукты именно с этой точки зрения. Мы сами ранее упоминали PVS-Studio в журнале именно в контексте РБПО. Однако статический анализ — это не только про безопасность.

Вернее, статический анализ — это всегда про безопасность, качество и надёжность кода. Но работа над этими характеристиками может происходить вне классических понятий и ГОСТов. Взглянем на PVS-Studio за пределами описания:

PVS-Studio — статический анализатор кода, совместимый с ГОСТ Р 71207-2024, выявляющий критические ошибки в коде на языкахC, C++, C#, Java. Включён в Реестр российского ПО: запись № 9837. Может применяться для построения РБПО согласно ГОСТ Р 56939-2024. Соответствует требованиям «Методики выявления уязвимостей и НДВ в программном обеспечении». 

Теперь посмотрим на инструмент с других сторон.

В PVS-Studio реализовано множество диагностик для поиска опечаток и дефектов, связанных с написанием кода методом copy-paste. Особенность детекторов опечаток в том, что многие из них построены на эмпирических алгоритмах. Это их и слабая, и сильная сторона.

Такие детекторы генерируют большее количество ложных срабатываний по сравнению с алгоритмами определения нулевых указателей, деления на ноль и т. д. Зато они очень хорошо дополнят человека в обзорах кода, позволяя находить незаметные и нетипичные ошибки.

Например, C++ анализатор может выявить ошибки формирования строк с HTML-кодом. Выявит незакрытые теги или их дублирование, хотя этот баг не имеет никакого отношения к языку C++ (см. диагностику V735).

В общем случае статические анализаторы не подходят для задачи оптимизации кода, так как не могут получить информацию о том, как часто будет выполняться тот или иной его фрагмент. Это задача для инструментов профилирования.

И всё же PVS-Studio помогает оптимизировать код благодаря диагностикам «микрооптимизации». Отдельный найденный фрагмент неоптимального кода не ускорит программу, но исправление сотен таких предупреждений в сумме может давать заметный результат.

Пример срабатывания диагностики V813 на C++ код реального приложения. Контейнер передаётся по значению, но его элементы используются только для чтения:

void

addDescriptions(

std::vector<std::pair<int, std::string>> toAdd)

{

  if (m_descCount + toAdd.size() >

MAX_POLICY_DESCRIPTIONS)

  ....

  for (const auto &it : toAdd)

....

}

Мы получали положительные отзывы от клиентов, что, исправив несколько таких недочётов в коде, они получали заметное ускорение приложения в десятки процентов.

Для помощи разработчикам игр инструментPVS-Studio интегрируется с такими игровыми движками, как Unreal Engine (С++) и Unity Engine (C#). Анализатор не только удобно встраивается в соответствующие CI/CD-конвейеры, но и учитывает особенности движков, реализуя узкоспециализированные диагностики.

Пример диагностики для Unity Engine: V3205.

Анализатор обнаруживает нежелательное создание экземпляра классов 'MonoBehaviour' или 'ScriptableObject' с помощью оператора 'new'. Объекты, созданные таким образом, не будут связаны с движком, поэтому такие специфичные Unity-методы, как 'Update', 'Awake', 'OnEnable' и прочие, вызываться не будут.

На практике при выборе инструмента приходится учитывать удобство интерфейса и интеграцию с другими системами. Нашей командой проделана большая работа в этом направлении. В настоящее время PVS-Studio интегрируется:

  • сIDE (Visual Studio, IntelliJ IDEA, Rider, OpenIDE, CLion, Visual Studio Code, Qt Creator);
  • сборочными системами (MSBuild, CMake, Ninja, Gradle, Maven, JSON Compilation Database);
  • облачными CI (CircleCI, Travis CI, GitLab, Azure DevOps, GitHub Actions);

и т. д.

Запускается на большом количестве ОС, в том числе отечественных: Windows, macOS, Arch Linux, Astra Linux, CentOS, Debian GNU/Linux, Fedora, Linux Mint, openSUSE, Ubuntu, РЕДОС.

 

Реклама. ООО «ПВС», ИНН: 7105502635, Erid: 2VfnxxBYefT

Стать автором BIS Journal

Смотрите также

Подписаться на новости BIS Journal / Медиа группы Авангард

Подписаться
Введите ваш E-mail

Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных

06.02.2026
ФБР надеется усилить кибербезопасность, выставив «Зимний щит»
06.02.2026
Мессенджер imo занял место заблокированного «Вайбера»
06.02.2026
Банк России сопроводит спорные операции подробностями
06.02.2026
Внедряя ИИ, CISO отстают от «победных реляций»
05.02.2026
Приложение Visit Russia пополнится новым функционалом
05.02.2026
В «Вышке» появился ИБ-департамент
05.02.2026
Присутствие эмодзи в коде PureRAT выявило роль ИИ в создании зловреда
05.02.2026
Газетчики не готовы давать ИИ-вендорам бесплатный «корм» для LLM
05.02.2026
Servicepipe внедрила расширенный фингерпринтинг в Cybert
04.02.2026
CISA подготовило список решений в области постквантовой криптографии

Стать автором BIS Journal

Поля, обозначенные звездочкой, обязательные для заполнения!

Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных