我们需要下载和安装Java-callgraph2。可以在其官方网站上找到 最新版本的下载链接,并按照指南进行安装。安装完成后,我们可以 开始生成调用关系图。 生成调用关系图的第一步是配置项目的类路径。我们需要告诉 Java-callgraph2项目的依赖关系,以便正确地解析代码之间的调用关 系。通过在配置文件中指定项目的classpath,
最种call graph 在Graph<String,DefaultEdge> 对象 graph 中被存储,当我们打印该对象可以得到一下结果: Node: TestCase1#main(java.lang.String[]) | v TestCase1#complexMethod(int) Node: TestCase1#complexMethod(int) | v TestCase1#fibonacci(int) | v TestCase1#factorial(int) | v TestCase1#mul...
importsoot.*;importsoot.options.Options;importjava.util.Collections;publicclassMethodCallGraphGenerator{publicstaticvoidmain(String[]args){// 设置 Soot 选项Options.v().set_prepend_classpath(true);Options.v().set_allow_phantom_refs(true);Options.v().set_include_all(true);Options.v().set_output_...
java-all-call-graph提供的扩展功能在生成方法向上/向下完整调用链阶段执行,因此新增或修改了扩展功能的代码后,需要重新生成方法向上/向下完整调用链,即调用TestRunnerGenAllGraph4Callee等类 2.1. 处理方法上的注解信息的扩展功能 在method_annotation_handler.properties配置文件中,可以定义用于对方法上的注解进行处理的类...
在使用Java-callgraph2生成调用关系图之前,首先需要编写一个简单的Java程序,例如: ```java public class Test { public void methodA() { methodB(); } 然后,使用Java-callgraph2的命令行工具或API接口对上述Java程序进行分析,生成调用关系图。以下是使用Java-callgraph2命令行工具生成调用关系图的示例: ```sh...
call.graph.output.detail参数值显示示例 1 com.test.Test1.func1(java.lang.String) 2 com.test.Test1.func1 3 Test1.func1 show.method.annotation 调用链中是否显示方法上的注解开关,值为true/false 仅当开关为开时,会显示当前方法上的全部注解的完整类名,格式为“[方法信息]@注解1@注解2...” gen...
com.github.adrninistrator:java-callgraph2: 版本号 3.3. 配置参数 3.3.1. 配置参数说明及示例 参考_javacg2_all_config.md 3.3.2. _javacg2_config 目录 配置文件名配置文件作用 config.properties 主要的开关及输出目录等配置 fr_eq_conversion_method.properties 通常不需要指定,处理 get/set 方法对应的字...
call.graph.output.detail:输出文件中调用关系的详细程度,1: 最详细,包含完整类名+方法名+方法参数,2: 中等,包含完整类名+方法名,3: 最简单,包含简单类名(对于同名类展示完整类名)+方法名,示例如下 show.method.annotation:调用链中是否显示方法上的注解开关,值为true/false;当开关为开时,会显示当前方法上的...
parse(filePath); MethodCallVisitor visitor = new MethodCallVisitor(); visitor.visit(cu, callGraph); // 填充调用关系图 } public HashMap<String, String> getCallGraph() { return callGraph; // 返回构建好的调用关系图 } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ...
对应代码地址为https://github.com/Adrninistrator/java-all-call-graph。 建议在需要生成方法调用链的项目中分别引入依赖,可以使每个项目使用单独的配置,不会相互影响。 该工具仅引入了log4j-over-slf4j组件,在引入该工具组件的项目中,还需要引入log4j2、logback等日志组件,且保证配置正确,能够在本地正常运行。