LLVM IR的静态分析工具

6
我正在尝试查找是否有可用于对LLVM IR进行分析并向开发人员报告问题的静态分析工具?欢迎任何建议。

LLVM 本身由于其特性而包含了很多不同的静态分析。您能更具体地说明您想要运行哪种类型的分析吗? - Oak
许多编程语言都有前端将源代码转换为LLVM IR(例如C / C ++,Fortran,Ruby等)。我正在尝试弄清楚是否可以对LLVM IR执行静态分析(任何类型,例如符号执行,数据流,控制流等),并向开发人员提供有关源代码的信息(错误描述和出现错误的源代码行号)来报告错误。 - Gunjan Aggarwal
1个回答

10

如果有兴趣的话,我找到了一些能够在LLVM IR上进行分析并向开发人员报告错误/警告的研究工具。以下是列表:

  1. KLEE - 对从C源代码生成的LLVM IR运行符号执行,并生成如此处所述的报告:http://klee.github.io/tutorials/testing-regex/
  2. KLOVER - 建立在KLEE之上,为C++程序生成测试用例
  3. LLBMC - 将LLVM IR转换为中间逻辑表示,再将其转换为SMT-LIB公式。然后使用SMT求解器解决SMT-lib公式。更多细节可以在这里找到:http://llbmc.org/files/papers/ASE13.pdf
  4. LAV - 它是建立在LLVM编译器基础设施之上的漏洞查找工具。LAV结合了符号执行、程序控制流的SAT编码以及有限模型检查的一些特性。

1
感谢您记录这些发现。这是一个完美的例子,说明“关闭、离题”的问题确实有非常有用的答案。 - Marc Alff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接