CFG模块使用说明
CFG模块使用须知
由于是Soot的特性,每次使用CFG模块之后,如果需要再次使用得重新启动该程序。后面会提供cli模式,可以完美解决该问题。
尝试过很多方法去解决该问题,可惜目前网上没有解决方法。自己也想过修改内存的方式,可惜目前无法解决。
界面
CFG生成有两种方式
选择类文件
- 第一步
- 第二步选择class文件
-
第三步点击Generate按钮
如果是命令行启动可以在控制台看到日子信息
如果是直接启动的话可以在应用启动目录的datas/logs/app.log查看日志信息
-
第四步,查看CFG,默认是生成所有的方法的CFG图。可以自由调节图片大小。
输入方法内容动态生成类文件进而生成方法的CFG
- 第一步输入方法内容,但这种方法局限性很大。并不是通用的,通用的是采用类文件的方法。
- 第二步选择GraphType,点击Generate按钮(选择类文件模式也是一样。前面忘记提了
- 第三步,自动生成CFG图片。
图片保存
1.第一步点击Export Image按钮,选择保存的路径。
-
第二步自动保存路径,并弹出成功信息。
- 查看是否保存成功
DOT文件保存
同保存图片一样。
测试DEMO代码
DEMO1 使用javac FizzBuzz.java
public class FizzBuzz {
public void printFizzBuzz(int k){
if (k%15==0)
System.out.println("FizzBuzz");
else if (k%5==0)
System.out.println("Buzz");
else if (k%3==0)
System.out.println("Fizz");
else
System.out.println(k);
}
public void fizzBuzz(int n){
for (int i=1; i<=n; i++)
printFizzBuzz(i);
}
}
DEMO2 方法
public static void main(String[] var0) {
System.out.println(System.getenv("PATH").toLowerCase().contains("graphviz"));
}