1

有一段时间我一直在努力用Soot创建一个控制流图,我有点迷失在它的教程中。我没有将 Soot 用作 Eclipse 插件,而是尝试将 Soot 用作库或 API。

我想做的是,我有一堆 Java 项目,我想创建/生成这些项目的控制流程图。我还看到 Soot 中有一个功能可以生成“DOT”格式的控制流图,这对我来说也是完全可以接受的。

任何显示如何使用 Soot 创建/生成控制流图的指南或代码示例都会很棒!

4

1 回答 1

2

您可以通过创建一个新的 ExceptionalUnitGraph 并将方法的 SootBody 传递给它来创建一个方法本地 CFG。wiki 中的 Soot 教程向您展示了如何做到这一点。

要获得跨过程 CFG,即 ICFG,可以使用 Soot 扩展 Heros: https ://github.com/Sable/heros/blob/develop/src/heros/InterproceduralCFG.java

于 2017-07-07T05:19:59.760 回答