基于soot的java方法名生成报告

0.生成XML格式文件

笔者使用soot将java文件解析生成xml格式文档,具体操作流程不再赘述。本文讨论执行结果的用途。笔者第一次采用的java文件如下:文件名为test.java

 

用soot解析后,生成如下所示的XML文件:

 

 

   1.用xsl样式表链接XML文档

大家很容易看到上文是一个常见的xml文件,然后我使用Altova XMLSpy工具,编写XML文件对应的XSL文件,把 XSL 样式表链接到 XML 文档。即可生成如下所示的方法名列表,文件以HTML格式的方式预览:

 

 

2.第二组实例测试

笔者紧接着按这种方法测试另外一个java文件,与上个不同的是,这个java文件中有三个类

 

接下来将该java文件转化成xml文件时,笔者意外的发现生成的xml文件不是一个而是三个:

 

 

接下来笔者随意挑选一个XML文件提取方法名,以第一个mycode.forst.xml为例,结果如下:

 

可以看到这几组方法都归属于同一类即mycode.first

而第二个XML文件也是这样:

 

   3.0总结

   从上面两个例子可以看到soot在解析java文件时,是将整个java文件分成类来分别解析的。每个类文件中再解析方法。由于笔者的知识所限和XML文件的局限型,方法之间的关系很难通过xml文件解析出来。但是,经过自己的查询和尝试,特总结出以下几点对自己工作不足之处的解决办法。

 

  3.1总结

  java是由类封装而成的,类与类之间的关系,在以上实例中,没有很好地反映类与类之间的关系,而将类之间的依赖关系转化出来的一个好的办法就是UML图。如下:

 

3.2总结

在上面的实例中,使用soot将java源码转化成XML文件不能很好地反应类中各个内部的调用情况,解决这个问题的一个方法是:采用soot生成CFGs即控制流图。以上文的test.java为例,使用soot.jar将文件解析成控制流图,如下所示,这样就很好地反映出函数类部的调用路径:

 

 

3.3总结

下一步工作和方向:

在以上成果的基础上,笔者会进一步丰富自己的用例。然后找到java类中各个方法之间的关系。思路就不再赘述了。

如果图片不清晰的话大家可以下载PDF格式的:

链接: https://pan.baidu.com/s/1mhXUCac 密码: sq27

转载于:https://www.cnblogs.com/zhichun/p/7224077.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值