2015-12-12 3 views
1

Мне нужно использовать абстрактную интерпретацию для проведения некоторого анализа с использованием LLVM. Возможно ли это? или мне нужно использовать инструменты анализа. Если бы я мог сделать это с помощью LLVM, какие классы помогут мне сформулировать утверждения из исходного исходного кода, чтобы получить отношения между переменными (и возможные диапазоны значений для каждой переменной)Аннотация Интерпретация в LLVM

ответ

3

Вы можете посмотреть в KLEE, который является символическим переводчик для LLVM битового кода: https://github.com/klee

1

Если вы используете домен интервала для вашего анализа, вы можете использовать Constant Range класс для представления интервалов. Это позволит вам абстрагировать арифметические операции над диапазонами. С помощью метаданных отладки и некоторой дополнительной бухгалтерии вы можете получить отношения между переменными. См. this ответ.

+0

спасибо огромное, вот что мне нужно –

0

Вы можете взглянуть на статический анализатор Pagai, который вычисляет инварианты на бит-коде LLVM с использованием современных методов абстрактной интерпретации и может обрабатывать .bc-файл с полученными инвариантами, которые будут использоваться вашим инструментом , http://pagai.forge.imag.fr

Смежные вопросы