February 8, 2021

Статический анализатор кода

Статический анализ кода — анализ программного обеспечения, производимый (в отличие от динамического анализа) без реального выполнения исследуемых программ.

Большинство компиляторов выводят на экран «предупреждения» — сообщения о том, что код, будучи синтаксически правильным, скорее всего, содержит ошибку. Однако существуют более "продвинутые" системы статического анализа кода, которые могут найти больше потенциальных ошибок, чем компилятор. Один из таких анализаторов называется PVS-Studio.

PVS-Studio - это инструмент для выявления ошибок и потенциальных уязвимостей в исходном коде программ, написанных на языках С, C++, C# и Java. Работает в 64-битных системах на Windows, Linux и macOS и может анализировать код, предназначенный для 32-битных, 64-битных и встраиваемых ARM платформ.

PVS-Studio выполняет статический анализ кода и генерирует отчёт, помогающий программисту находить и устранять ошибки. Анализатор выполняет широкий спектр проверок кода.

Основная ценность статического анализа заключается в его регулярном использовании, благодаря чему многие ошибки могут быть выявлены и устранены на самых ранних этапах. Нет смысла тратить множество часов на поиск ошибки, которую можно найти благодаря анализу кода. Но еще раз подчеркнем. Основная польза статического анализа не в том, чтобы найти одну запрятанную ошибку в день перед релизом. А регулярно устранять десятки обычных ошибок день за днем.

Более подробно о том, какие ошибки находит PVS-Studio можно почитать на сайте: https://www.viva64.com/ru/w/#GeneralAnalysisCPP

С помощью PVS-studio был произведен статический анализ кода open-source проекта YATE. Было найдено 12 серьезных проблем, 781 средней тяжести проблемы и 204 не очень серьезны.

Одной из серьезных проблем была ошибка утечки памяти:

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

А вы используете в своих проектах PVS-Studio?