我想写一个程序来实现这一点,基于Soot在Reaching Definition分析中的构建。现在我想知道这是正确的方法吗?我搜索了一下,发现似乎从来没有人对这个方向感兴趣。
有什么建议吗?
您可能想要做的是使用迭代数据流求解器组合一组范围。您希望将输入的范围值组合为跨基本块的定义集的范围值。
为此,您通常需要一个控制流图和基本块之间的传递函数。我想你可以用类似的方式来处理到达定义图。
然后,您将需要跨过程的范围传播来在代码中推送范围。
这是您正在陈述的一个非常普通的问题。达到定义与此没有太大关系。全局值编号更像是你想要的,但很难从你的描述中分辨出来。试试Soot邮件列表,其中包含更详细的问题说明。