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

Слайд 2

Статический анализатор clang. Пакеты

Статический анализатор clang. Пакеты

Слайд 3

Статический анализатор clang для проектов

scan-build команда_сборки
scan-build gcc -c file.c -o file
scan-view каталог_с_отчетами
Пример:
mkdir

Статический анализатор clang для проектов scan-build команда_сборки scan-build gcc -c file.c -o
build && cd build
scan-build ../configure -prefix=$(pwd)/../install
scan-build make

Слайд 4

Расширение статического анализатора clang

Определение и реализация подкласса Checker
Регистрация в пакете alpha
Сборка и

Расширение статического анализатора clang Определение и реализация подкласса Checker Регистрация в пакете
тестирование нашего средства проверки (см. пример ReactorChecker.cpp)

Слайд 5

Инструменты Clang и LibTooling

Установить Clang Extra Tools
Создать базу данных команд комиляции
mkdir build

Инструменты Clang и LibTooling Установить Clang Extra Tools Создать базу данных команд
&& cd build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
ln -s compile_commands.json ..
или
libtool test.c -- -Iinclude прочие_параметры_компиляции

Слайд 6

Инструменты Clang и LibTooling

Clang-tidy – проверки на нарушение стандартов оформления
Clang-modernize – адаптация

Инструменты Clang и LibTooling Clang-tidy – проверки на нарушение стандартов оформления Clang-modernize
старого кода под новые стандарты, например С++11
Clang-apply-replacements – в помощь Clang-modernize для больших проектов
Clang-format – форматирование С/C++ кода
Modularize и module-map-checker – решение проблем внедрения модулей (*.cpp), анализ заголовочный файлов, глобальных переменных
Pp-trace – вывод трассы работы препроцессора
Clang-query и clang-check – работа с AST-деревом
Remove-cstr-calls – удаление .c_str() вызовов
Создание собственного инструмента рефакторинга, например переименование переменных (см. IzzyRefactor.cpp)