有一段时间我一直在努力创建一个带有Soot的控制流图,我在tutorials中迷失了方向。我没有将Soot用作Eclipse插件,而是尝试将Soot用作库或API。
我想要做的是,我有一堆Java项目,我想创建/生成这些项目的控制流图。我还看到Soot中有一个功能,我可以用“DOT”格式生成控制流图,这对我来说也是可以接受的。
显示如何使用Soot创建/生成控制流图的任何指南或示例代码都会很棒!
答案 0 :(得分:1)
您可以通过创建一个新的ExceptionalUnitGraph来创建一个方法本地CFG,并将方法的SootBody传递给它。维基中的Soot教程向您展示了如何做到这一点。
要获得程序间CFG,即ICFG,您可以使用Soot扩展Heros: https://github.com/Sable/heros/blob/develop/src/heros/InterproceduralCFG.java