LLVM 中的抽象解释
Posted
技术标签:
【中文标题】LLVM 中的抽象解释【英文标题】:Abstract Interpretation in LLVM 【发布时间】:2016-03-18 08:14:32 【问题描述】:我需要使用抽象解释来使用 LLVM 进行一些分析。 这可能吗?或者我需要更轻松地使用分析工具。 如果我可以通过 LLVM 做到这一点,哪些类将帮助我从原始源代码中制定语句以获取变量之间的关系(以及每个变量的可能值范围)
【问题讨论】:
【参考方案1】:您可以查看KLEE,它是 LLVM 位码的符号解释器:https://github.com/klee
【讨论】:
【参考方案2】:如果您使用区间域进行分析,则可以使用Constant Range 类来表示区间。它将允许您抽象出范围上的算术运算。通过调试元数据和一些额外的簿记,您可以获得变量之间的关系。见this答案。
【讨论】:
【参考方案3】:您可以查看 Pagai 静态分析器,该分析器使用最先进的抽象解释技术计算 LLVM 位码上的不变量,并且可以使用获得的不变量检测 .bc 文件,以供您的工具使用。 http://pagai.forge.imag.fr
【讨论】:
以上是关于LLVM 中的抽象解释的主要内容,如果未能解决你的问题,请参考以下文章