java程序静态切片,WALA---Java程序静态切片技术

上一次,我们讲述了如何使用wala对类进行最简单的分析,这次将使用wala工具,进行静态切片分析。

如果对切片不是很熟悉,可以直接搜索 程序切片,有很多关于切片技术的讲解,这里不在讲述。

步入主题:

首先,在上一次ClassHierarchy cha的基础上,需要构建入口点,分析选项,反射机制,如下所示:

Iterableentrypoints =Util.makeMainEntrypoints(scope, cha);

AnalysisOptions options = new AnalysisOptions(scope, entrypoints);

options.setReflectionOptions(ReflectionOptions.NONE);

随后,我们需要构建call graph:

// 这里,Util类下有很多builder函数,具体含义我个人也不是很清楚,希望懂的大神可以分享,万分感谢。

CallGraphBuilderbuilder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope);

CallGraph cg = builder.makeCallGraph(options, null);

可以使用cg图,加数据流控制流选项直接进行切片,但是这里不建议这样子使用,因为切片是基于sdg图进行的,所以这里先构建sdg图:

// Build sdg

final PointerAn

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值