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

Aegis позволяет анализировать многофайловые программные проекты, имеющие одну и более целей сборки. Под целью сборки понимается исполняемый файл, статическая или динамическая библиотека, являющаяся результатом сборки. Обеспечивается возможность анализа частей программ, в том числе отдельных файлов.

Сервер анализа

Aegis состоит из набора программ: ssadump, ssald, ssaar и s2a. Утилиты ssadump, ssald и ssaar осуществляют разбор проекта на языке С и формируют внешнее представление модели программы. Приложение s2a выполняет статический анализ и обнаружение дефектов.

Архитектура

Интерфейсы пользователя

Aegis предоставляет несколько интерфейсов пользователя:

  • плагин для среды разработки Eclipse
  • плагин для среды разработки Netbeans
  • web-интерфейс обнаружения дефектов
  • интерфейс командной строки

Плагин для Eclipse

Версии Eclipse: 3.5 и выше

Основные возможности:

  • подготовка модели и анализ проекта в локальном и сетевом режиме (с выделенным сервером анализа)
  • выбор функции-точки входа и настройка параметров анализа
  • вывод результатов анализа с указанием обнаруженных дефектов
  • подсветка дефектов в исходном коде
  • просмотр логов анализа

Eclipse screenshot

Плагин для Netbeans

Версии Netbeans: 6.8 и выше

Основные возможности:

  • подготовка модели и анализ проекта в локальном и сетевом режиме (с выделенным сервером анализа)
  • выбор функции-точки входа и настройка параметров анализа
  • вывод результатов анализа с указанием обнаруженных дефектов
  • подсветка дефектов в исходном коде
  • подсветка "мертвого" кода
  • просмотр логов анализа

Netbeans screenshot

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 Попытка освобождения некорректного указателя