用Soot生成控制流图(dot语言描述)+Graphviz生成png格式图片

基本参考这一篇完成:Soot生成控制流图
在程序内用代码跑,失败了。。。然后迫不得已另辟蹊径,在java直接调用cmd命令生成.dot文件
主要操作步骤如下:

  1. 将Soot-2.5.0.jar放在项目的bin目录下
  2. 用cmd命令进入bin目录,使用Soot自带的工具soot.tools.CFGViewer分析类中的每个方法的控制流并生成DOT语言描述的控制流图
String cmd2 = "cmd /c java -cp soot-2.5.0.jar soot.tools.CFGViewer --soot-classpath .;D:\\\\jdk1.7.0_67\\\\jdk1.7.0_67\\\\jre\\\\lib\\\\rt.jar code.test1";
String cmd = "cmd /c cd bin & "+cmd2;
Runtime.getRuntime().exec(cmd);

        D:\\jdk1.7.0_67\\jdk1.7.0_67\\jre\\lib\\rt.jar
        1.7版本的jdk下面的rj.jar的路径 code是包名
        code.test1是该类的Qualified Name

        &可以连接两条cmd命令
        cmd /c 不打开cmd命令窗口(执行完后关闭了)
        cmd /k 打开cmd命令窗口(执行完后不关闭)
        cmd /c start 打开一个新窗口执行命令,原窗口关闭
        cmd /k start 打开一个新窗口执行命令,原窗口不关闭

  1. 运行后,在项目的bin目录下生成了sootOutput文件夹,里面有所有method生成的.dot文件

  2. 生成png图片

  • 方法1
    安装graphviz, 在graphviz-2.38的bin目录下,找到gvedit.exe
    File -> Open -> .dot文件
    Graph -> Settings -> 生成png格式的文件
    在这里插入图片描述
  • 方法2
    同样要安装graphviz
    在cmd中进入sootOutput文件夹,输入命令
dot -Tpng -o add.png add.dot

将 add.dot文件 转化为png格式的 add.png文件
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值