Adrninistrator / java-callgraph2

Programs for producing static call graphs for Java programs.
Apache License 2.0
194 stars 69 forks source link

作者您好,请问您的工具现在还不能处理Java的哪些特性呀?就是哪些场景的调用关系是缺失的?能获取类级别的调用关系吗? #14

Open lly-ss opened 1 year ago

Adrninistrator commented 1 year ago

现在不能获取的方法调用关系

类之间的调用关系会输出在class_name文件中,如果有需要的话可以把格式调整一下 需要使用类之间的依赖关系吗

lly-ss commented 1 year ago

谢谢您的回复! 我暂时不需要使用类之间的依赖关系,但是生成的几个txt文件的内容有些地方不太理解,不知您是否会更新一些说明文档? 另外,您的工具有对应论文吗?实现的算法是在已有的算法上改进还是您自创的呀?我使用您的工具比使用soot生成调用图快了很多,感到非常惊喜!

Adrninistrator commented 1 year ago

生成的文件作用可以参考这个目录,https://github.com/Adrninistrator/java-all-call-graph/tree/main/java-all-call-graph/src/main/resources/_jacg_sql,每个文件对应一个数据库表 没有写论文,一开始是参考https://github.com/gousiosg/java-callgraph,支持class文件中通过方法调用指令能够直接获取到方法调用关系,后来增加了通过通过方法调用指令不能直接获取到方法调用关系,没有用到太复杂的算法,都是根据实际情况分析怎么去实现

lly-ss commented 1 year ago

谢谢您的回复! 请问现在这个版本的工具支持到java的什么版本呢?

Adrninistrator commented 1 year ago

谢谢您的回复! 请问现在这个版本的工具支持到java的什么版本呢?

程序本身执行使用的是JDK8,分析jar包和class文件支持JDK1.5及以上的版本