Статический анализ кода: обзор инструмента OCLint

OCLint — это инструмент для статического анализа кода, написанного на С, С++ и Objective-C.
OCLint

OCLint — инструмент, разработанный Ryuichi Laboratories, который проверяет программы на С, С++ и Objective-C на наличие следующих багов и ошибок:

  • пустые конструкции if/else/try/catch/finally;
  • неиспользуемые локальные переменные и параметры;
  • использование кода с высокой цикломатической и NPath сложностью;
  • избыточное использование конструкций if и ненужных скобок;
  • код с запашком — использование длинных методов и длинных списков параметров;
  • плохие практики написания кода — переназначение параметров, неправильное использование логики.

Функциональность OCLint

Статический анализ кода призван обнаруживать критические дефекты кода, которые не видны компилятору, но способны обрушить программу в будущем. OCLint автоматизирует процесс проверки кода при помощи расширенных функций:

  • Динамическая загрузка правил в систему, даже во время выполнения;
  • Гибкие и расширяемые конфигурации программы гарантируют пользователю настройку поведения OCLint именно под нужды каждого;
  • Возможность вызова инструмента из командной строки вносит непрерывную интеграцию и постоянную проверку кода в процессе разработки. Это поможет исправлять все баги ещё на этапе разработки;
  • Снижена вероятность ложных срабатываний инструмента для избежания ситуаций, когда полезный код может быть помечен как избыточный;
  • Эффективность и точность инструмента основана на использовании абстрактного синтаксического дерева исходного кода.

Установка инструмента

OCLint является автономным инструментом, работающим на платформах Linux и macOS. Получить самую свежую версию 0.13 продукта вы можете, загрузив и самостоятельно скомпилировав исходный код, либо уже скомпилированные двоичные файлы программы.

Процесс установки подробно описан на специальной странице инструмента. Также доступно руководство пользователя с подробным описанием использования команд инструмента. Продукт распространяется под лицензией Modified BSD.

Вячеслав Шарунов