如何使用静态分析估算变量的值?

时间:2014-04-08 07:37:09

标签: java static-analysis intermediate-language soot

我想根据Soot的内置到达定义分析编写一个程序来完成这项工作。现在我想知道这是正确的做法吗?我搜索过,发现似乎没有人对这个方向感兴趣。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您可能想要做的是使用iterative data flow solver组合一组范围。您希望将输入中的范围值组合为跨越基本块的定义集的范围值。

为此,您通常需要一个控制流程图和基本块的传递函数。我想你可以用类似的方式处理达到定义图。

然后,您需要进行过程间范围传播以推送代码中的范围。

答案 1 :(得分:0)

这是你说的一个非常普遍的问题。达到定义与此没有多大关系。全球价值编号更符合您的需求,但从您的描述中难以辨别。尝试使用更详细的问题陈述的Soot邮件列表。