Trusted-CPP Documentation

Руководство по установке

Это руководство поможет вам установить и настроить Trusted-CPP в вашей системе.

Требования

Перед установкой Trusted-CPP убедитесь, что у вас установлены следующие компоненты:

Сборка из исходного кода

  1. Клонируйте репозиторий:
    git clone https://github.com/afteri-ru/trusted-cpp.git
    cd trusted-cpp
    
  2. Создайте каталог для сборки и перейдите в него:
    mkdir build
    cd build
    
  3. Настройте проект с помощью CMake:
    cmake ..
    
  4. Соберите проект:
    make
    

Это соберет как плагин Clang (trusted-cpp_clang.so), так и исполняемый файл для тестов.

Использование плагина

После сборки вы можете использовать плагин с clang++ для анализа вашего кода на C++:

clang++ -std=c++20 -Xclang -load -Xclang ./trusted-cpp_clang.so -Xclang -add-plugin -Xclang trust -Xclang -plugin-arg-trust -Xclang circleref-disable ваш_файл.cpp

Замените ваш_файл.cpp на путь к вашему исходному файлу C++.

Параметры плагина

Плагин поддерживает несколько аргументов командной строки:

Для анализа циклических ссылок необходимо запустить плагин дважды:

  1. Первый проход с --circleref-write для сбора информации о классах
  2. Второй проход с --circleref-read для выполнения анализа

Пример анализа циклических ссылок:

# Первый проход
clang++ -std=c++20 -Xclang -load -Xclang ./trusted-cpp_clang.so -Xclang -add-plugin -Xclang trust -Xclang -plugin-arg-trust -Xclang circleref-write -fsyntax-only ваш_файл.cpp

# Второй проход
clang++ -std=c++20 -Xclang -load -Xclang ./trusted-cpp_clang.so -Xclang -add-plugin -Xclang trust -Xclang -plugin-arg-trust -Xclang circleref-read ваш_файл.cpp

Использование библиотеки

Включите заголовочный файл trust.h в ваши файлы C++ для использования возможностей библиотеки:

#include "trust.h"

// Ваш код здесь

Библиотека в виде заголовочных файлов предоставляет расширенные типы умных указателей и механизмы потоковой безопасности.

Запуск тестов

Для запуска тестов соберите исполняемый файл для тестов и запустите его:

./trusted-cpp_test

Это выполнит все модульные тесты для библиотеки и плагина Trusted-CPP.