Анализатор ANA - это инструмент анализа, который можно использовать для анализа утечек памяти CPP (или более?). И проверяет коллекции. В том числе несколько библиотек понятий, в которых использовались C ++ 20. Теперь он основан на статическом анализаторе Clang, я хочу сделать его статическим анализатором, который можно использовать для анализа языков, которые генерировали их коды для LLVM IR. И я буду реализовать некоторые функции, которые можно использовать для анализа языка. (Все алгоритмы в статическом анализе или анализе программы)

В течение долгого времени, как быстро найти лазейки и найти различные потенциальные ошибки в программах, насколько это возможно, было важной проблемой в сообществе информатики. Эта проблема также высоко ценилась крупными международными компаниями -разработчиками программного обеспечения. В промышленности люди часто используют различные методы обнаружения для поиска ошибок в программном обеспечении и улучшения качества программного обеспечения. В отличие от метода динамического тестирования, мы также можем напрямую проанализировать программный код без запуска программного обеспечения и найти некоторые ошибки. Этот вид метода называется статическим анализом. Это важное направление исследования в области языка программирования и компиляции и разработки программного обеспечения. Относительно известным инструментом статического анализа раннего развития является Lint, который в основном проверяет проблемы безопасности на языке C. В последние годы технология статического анализа постепенно привлекала внимание ученых в области операционных систем и информационной безопасности. Некоторая основная семантика, предложенная языком ржавчины, также может в качестве ссылки на другие языки. Эта статья посвящена повышению безопасности C ++ и использует технологию статического анализа для анализа задач памяти C ++. Вред, причиненный уязвимостью и т. Д., Для указателей и других проблем даются соответствующие решения, и библиотека проверки заимствований, аналогичная ржавчине, предоставляется для разработчиков. Несколько чеков реализованы на основе статического анализатора Clang, который имеет преимущества по сравнению с существующими инструментами статического анализа.
Загрузите мой релиз, но не забудьте использовать LLVM@15 или выше. и запустить команду.
/path/to/install/clang++ -cc1 -load ANA.dylib
-analyze -analyzer-checker=ANA
foobar.cppВы можете сделать свои собственные зависимости ,
Используйте Conan или Vcpkg install {fmt} и Google, или используйте подмодуль GIT
Установите LLVM@15 или выше
Во -первых, вам нужно установить все зависимости. И тогда вы можете построить.
mkdir build
cd build
cmake .. -G Ninja # optional obviously
ninjaМы получаем следующие цели.
ClangPlugins
├── assign-or-float-compIn-branch-cond-checker
├── CMakeLists.txt
├── function-printer
├── sample-checker
└── simple-allocation-operators-checker
Создайте анализатор. Вы хотите.
Просто просмотрите пример в испытательном каталоге. ./runalltest.sh
Установите следующие зависимости. FD - вы должны установить fd (https://github.com/sharkdp/fd) сначала
и запустите тестер в Utils.