2

我想要一个工具来查找(Java)构造函数/方法的所有出现并报告每次调用的实际参数值。

我想还没有准备好,而且我还需要静态分析。

您建议使用哪个库/程序?

(我必须分析 Java 代码,但可以使用任何语言编写分析器)

4

2 回答 2

1

你可以使用 AspectJ。在构造函数上定义一个切入点。然后编写一个方面以在每次调用时执行。然后将该方面应用于整个项目。

方面内的代码提供了调用链的详细信息,因此您可以自己查询参数并根据需要记录它们。

于 2013-02-08T04:09:46.773 回答
0

您需要一个可以解析 Java、构建捕获代码的 AST(因此您可以搜索代码以查找方法调用)、可以解析类型和名称(因此您知道每个符号实例的含义并可以确定特定标识符名称)的工具感兴趣的方法,而不仅仅是一个意外同名的符号),并且可以帮助您生成方法调用。

Java 编译器提供了 API 来支持其中的一些。我不知道它会帮助您重新生成方法调用文本。

我们的 DMS Software Reengineering Toolkit 提供通用程序分析和转换功能,包括解析、AST 构建/访问、符号表构建和任意子树的漂亮打印(文本的重新生成)。它有一个完整的 Java 前端,提供全名和类型解析。使用 DMS 提供的支持编写一个准确、可靠的工具来做你想做的事情是非常简单的。

于 2013-02-01T14:24:59.800 回答