有一段时间,我一直在努力使用 Soot 创建控制流图。我有点迷失在它的tutorials中。我一直在尝试使用 Soot 作为库或 API,而不是使用 Soot 作为 Eclipse 插件。
我想做的是,我有一堆 Java 项目,我想创建/生成这些项目的控制流图。我还看到Soot中有一个功能可以生成“DOT”格式的控制流图,这对我来说也是可以接受的。
任何展示如何使用 Soot 创建/生成控制流图的指南或代码示例都很棒!
最佳答案
您只需创建一个新的 ExceptionalUnitGraph,并将其传递给方法的 SootBody,即可创建方法本地 CFG。 wiki 中的 Soot 教程向您展示了如何做到这一点。
要获得过程间 CFG,即 ICFG,您可以使用 Soot 扩展 Heros: https://github.com/Sable/heros/blob/develop/src/heros/InterproceduralCFG.java
关于java - 如何使用 Soot 创建控制流图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44944837/