java-callgraph2
java-callgraph2 copied to clipboard
您好,请问method_call中为什么没有<clinit>()?
如果一个函数调用了另一个类的静态field,method_call.txt中没有显示这种调用关系吗?
method_call
表里
方法调用的被调用对象,或者被调用参数涉及到类的静态字段时,相关信息会保存在method_call_info
表中,通过call_id
字段关联到method_call
表
但是对于String之类的类型,这些在class文件里是常量的形式,不会有静态字段形式存在
所以如果某个函数调用了另一个类的静态字段,这种有
方法的调用不会出现在
method_call
表里方法调用的被调用对象,或者被调用参数涉及到类的静态字段时,相关信息会保存在
method_call_info
表中,通过call_id
字段关联到method_call
表但是对于String之类的类型,这些在class文件里是常量的形式,不会有静态字段形式存在
对应的txt文件是method_call_info.txt
作者您好,我看了sql表后还是对这几个txt文件搞不太清除,您可以解释一下method_call_info.txt,method_info.txt,method_arg_generics_type.txt,method_call.txt和method_return_generics_type.txt这几个文件存储的是一些什么信息吗? 感激不尽!
- method_info
方法的信息,完整方法及access_flags、返回类型等
- method_info
方法调用,调用方法和被调用方法的信息
- method_call_info
方法调用中,被调用对象和参数涉及的可能的值和类型
- method_arg_generics_type
方法的参数中涉及的泛型中的类型,比如List<String>
- method_return_generics_type
方法的返回类型中涉及的泛型中的类型,比如List<String>
可以参考sql文件中的COMMENT