Java程序的静态污染分析



我不确定这是否是合适的询问地点,如果有任何帮助,我们将不胜感激。我想为Java构建一个静态污染分析工具。我的理解是,该工具将从主入口点开始扫描所有java文件。对于每一行源代码,它都会对其进行解码并执行所需的操作。

例如,

1- Boolean x=false;
2- String s = x.toString();   

第1行声明了一个布尔变量,第2行将其转换为字符串。第1行将注意到布尔变量"x"已经声明,并在第2行将其转换为字符串。只有当我检查toString()函数并执行所需的操作时,我的工具才能理解它。

我的问题是,我需要为Java中为布尔类型定义的所有函数编写检查吗?其他数据类型和其他库函数如何?

例如,布尔类型可用的其他一些函数有:;

toString(boolean value)
compareTo(Boolean that)
etc.

为什么要重新发明轮子?你看了findbugs吗?如果你知道一些错误模式,那么用findbugs编写你自己的错误检测器,你就完成了。这里,这里,这里和这里是一些起点。。。

最新更新