Использование анализатора
Aegis позволяет анализировать многофайловые программные проекты, имеющие одну и более целей сборки. Под целью сборки понимается исполняемый файл, статическая или динамическая библиотека, являющаяся результатом сборки. Обеспечивается возможность анализа частей программ, в том числе отдельных файлов.
Сервер анализа
Aegis состоит из набора программ: ssadump, ssald, ssaar и s2a. Утилиты ssadump, ssald и ssaar осуществляют разбор проекта на языке С и формируют внешнее представление модели программы. Приложение s2a выполняет статический анализ и обнаружение дефектов.
Интерфейсы пользователя
Aegis предоставляет несколько интерфейсов пользователя:
- плагин для среды разработки Eclipse
- плагин для среды разработки Netbeans
- web-интерфейс обнаружения дефектов
- интерфейс командной строки
Плагин для Eclipse
Версии Eclipse: 3.5 и выше
Основные возможности:
- подготовка модели и анализ проекта в локальном и сетевом режиме (с выделенным сервером анализа)
- выбор функции-точки входа и настройка параметров анализа
- вывод результатов анализа с указанием обнаруженных дефектов
- подсветка дефектов в исходном коде
- просмотр логов анализа
Плагин для Netbeans
Версии Netbeans: 6.8 и выше
Основные возможности:
- подготовка модели и анализ проекта в локальном и сетевом режиме (с выделенным сервером анализа)
- выбор функции-точки входа и настройка параметров анализа
- вывод результатов анализа с указанием обнаруженных дефектов
- подсветка дефектов в исходном коде
- подсветка "мертвого" кода
- просмотр логов анализа
Web-интерфейс обнаружения дефектов
Основные возможности:
- подготовка модели и анализ проекта на выделенном сервере
- получение списка дефектов
- подсветка дефектов в исходном коде
- представление контекста дефекта
Интерфейс командной строки
При использовании командной строки пользователь системы получает максимальный контроль за процессом построения модели и выполнения анализа. Имеется краткая справка по командам.
Пример анализа проекта, сборка которого осуществляется на основе GNU make:
Построение модели программы:
$ make CC=ssadump LD=ssald $ ssadump main.c -o main
Запуск анализатора:
$ ./s2a.sh /path/to/project/main.ssasymtab $ Defect found 1 $ RES-03* [DEF] HIGH main.c:11:5 Попытка освобождения некорректного указателя