Soot生成代码控制流图

Posted blainew

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Soot生成代码控制流图相关的知识,希望对你有一定的参考价值。

Soot可以对代码进行分析,提供了多种字节码分析和变换功能,通过它可以进行过程内和过程间的分析优化,以及程序流图的生成,还能通过图形化的方式输出。

http://www.brics.dk/SootGuide/上面有官方的guide

 

1. 环境准备:

a. 下载安装java7,不能用java8 (soot3.0.1可以用java8)

b. 下载soot jar包 https://www.sable.mcgill.ca/soot/soot_download.html

c. 设置好 JAVA_HOME

d. 将soot-2.5.0.jar和test.java文件放到同一个目录下,如 D:\\testflow

 

2. 运行步骤

a. 命令行方式进入D:\\testflow, 编译java源文件   javac test.java

 

b. java -cp soot-2.5.0.jar soot.tools.CFGViewer --soot-classpath .;"%JAVA_HOME%"jrelib t.jar test

,在当前目录下会生成sootOutput文件夹,生成test.dot文件 

 

c. 下载graphviz(任意版本),解压后bin目录里运行dot -Tpng test.dot -o testflow.png

生成的控制流图如下:

技术分享图片

 

以上是关于Soot生成代码控制流图的主要内容,如果未能解决你的问题,请参考以下文章

从 ANSI C 代码获取控制流图

软件测试复习----程序流图控制流图及注意点

软件测试复习----程序流图控制流图及注意点

软件测试复习----程序流图控制流图及注意点

软件测试复习----程序流图控制流图及注意点

软件测试 homework3 控制流图和主路径覆盖