使用soot和graphviz画Java的控制流图

辛苦两天了,啥也不说,先来张图:

 

看着可真漂亮,O(∩_∩)O哈哈~

实验环境是Ubuntu。

1.JDK的版本必须是1.7或者以下,JDK1.8不行,总会报错,

2.下载sootclasses-2.5.0.jar包:http://download.csdn.net/download/sheshizhang/4573588

   可在github上照着官网上面的小例子试试手:https://github.com/Sable/soot/wiki/Introduction:-Soot-as-a-command-line-tool

3.下面正式使用soot,首先定义soot.jar的引用路径:

export SOOT_PATH=$HOME/mooc/soot-2.4.0.jar

4.引用的类的路径:

export CLASS_DIR=/home/cpp/cp

5.自定义的类的名称:

export CLASS_NAME=Test1

6.使用javac编译Java文件:

javac $CLASS_DIR/$CLASS_NAME.java

7.定义soot-class路径:

export SOOT_CLASS_PATH=$CLASS_DIR:$JAVA_HOME/jre/lib/rt.jar

8.使用命令生成dot文件:

java -cp $SOOT_PATH soot.tools.CFGViewer --soot-class-path $SOOT_CLASS_PATH --graph=BriefBlockGraph $CLASS_NAME

命令截图如下:

9.下面开始下载graphviz工具来可视化dot文件,dot文件具体是啥小伙伴们可以去官网看看。

在Linux下安装graphviz联网使用命令:

 sudo apt-get install graphviz

10.验证命令:

dot -version

如下所示:

十几种图文件格式,总有一款适合你,○( ^皿^)っHiahia…

11.使用dot命令:

dot -T jpg 111.dot -o 111.jpg,

此处我们将dot转化成了jpg,在自动生成的文件夹sootOutput里面就能看到他,有木有很兴奋?

编后语:最近由于论文需求画的Java控制流图还不能很好满足需求,小伙伴们有更好的工具可以共享出来呦,就不用这么辛苦了,可以在评论区里相互交流

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值