Skip to content

Latest commit

 

History

History
52 lines (39 loc) · 3.48 KB

README.ru.md

File metadata and controls

52 lines (39 loc) · 3.48 KB

Paranoid null checker (paranucker) - статический анализатор C/C++ кода.

Представляет собой плагин к компилятору gcc. Есть возможность вывода абстрактного синтаксического дерева AST и поиска нулевых указателей.

Версия 1.0 Дата: 2015-06-22

Зависимости для компиляции

  • gcc 5 с заголовочными файлами для плагинов. (gcc-5-plugin) Также возможно компиляции для более старых версий gcc, но нужно модифицировать сборочный файл.
  • automake/autoconf.

Зависимости исполнения

  • gcc 5 / g++ 5 или старее.

Функции

  • Вывод AST дерева из недр gcc.
  • Поиск пропущенных проверок входных параметров-указателей в функциях на ноль.
  • Пропуск проверки на нулевой указатель если паарметр имеет атрибут NONNULL.
  • В будущем возможно другие проверки...

Компиляции

  • Запустить build.sh
  • Вы получите два файла. paranucker.so для C/gcc. и cxxparanucker.so для C++/g++

Примеры использования

В директории examples находится два примера для C++ и C.

Использование в реальных программах

Расширенное использование

Paranoid null checker поддерживает один параметр с именем -fplugin-arg-paranucker-command или -fplugin-arg-cxxparanucker-command в зависимости от того, что вы используется C или C++.

Пример: gcc-5 -fplugin=../paranucker.so -fplugin-arg-paranucker-command=detectnullpointers

Возможные значения параметра:

название действие
parse обработка AST без вывода
dump вывод всей AST
smalldump вывод AST в упрощенном виде
memoryusage вывод количества обработанных узлов дерева
dumpunsupported вывод узлов, которые не могут быть обработаны из-за типа
findargs вывод имен функций и аргументов, которые могут быть проверены
detectnullpointers поиск нулевых указателей
dumpnullpointers поиск нулквых указателей и вывод отладочной информации