Запустите svace build
, передав в качестве аргументов команду сборки программы.
Svace запустит и будет отслеживать процесс сборки,
собирая необходимые для анализа данные.
После завершения сборки, запустите svace analyze
,
чтобы начать фазу анализа. Svace произведёт легковесный анализ
на основе абстрактного дерева синтаксиса и запустит чувствительный
к путям и контексту межпроцедурный анализ программы.
Svace выдаст набор предупреждений об ошибках в коде программы, которые могут быть импортированы в сервер истории. Мы предоставляем графический интерфейс для просмотра предупреждения, сравнения различных запусков и скрытия ложных срабатываний на следующих запусках.
На фазе сборки Svace отслеживает процесс сборки и выявляет особые события (такие, как запуск компилятора, линкера, архиватора и т. п.) для поддерживаемых языков. Svace может анализировать программы, собранные под архитектуры Intel x86/x86-64 Linux/Windows, ARM/ARM64. Поддерживаются как популярные компиляторы C/C++ для Linux и Windows, так и набор компиляторов для встраиваемых систем.
Используя детализированное описания исходного процесса сборки, Svace применяет собственный компилятор для создания промежуточного представления, предназначенного для проведения анализа.
Промежуточное представление, полученное на предыдущем шаге, обрабатывается легковесными анализаторами для каждого языка в отдельности в поисках простых ошибок.
В ходе основной фазы анализа, Svace использует DFA для внутрипроцедурного чувствительного к потоку анализа. Svace также использует статическое символьное исполнение для чувствительного к потоку анализа, которое позволяет обнаруживать ошибки, возникающие только на определённых путях выполнения программы.
Для межпроцедурного анализа Svace использует резюме функций, созданные внутрипроцедурным анализом. Svace создаёт граф вызовов программы, который обходится от вызывающих функций к вызываемым. Когда механизм обрабатывает вызов функции, он использует её резюме вместо повторного анализа её тела, что позволяет не анализировать функцию дважды.
Svace сохраняет результаты анализа в базе данных. Мы предоставляем графический интерфейс для их просмотра. Интерфейс позволяет помечать предупреждения как истинные или ложные. Пометка будет автоматически применяться к предупреждению, если оно будет повторно обнаружено на последующих запусках.