java-all-call-graph icon indicating copy to clipboard operation
java-all-call-graph copied to clipboard

调用链的参数部分是否可以显示参数实际值

Open beanww opened this issue 3 years ago • 1 comments

现在碰到一种场景,想显示调用参数的实际内容,不知道callGraph能否支持:

比如如下a方法调用b方法 public a(){ b("test1", null) } private b(String p1, Object p2){ ...

调用链中会显示 : [1]# [clzA:2] clz:b(java.lang.String, java.lang.Object)

能否通过扩展类或什么方式,显示a调用b时传入的实际内容? [1]# [clzA:2] clz:b(“test1”, null)

多谢!

beanww avatar May 25 '22 10:05 beanww

获取方法调用参数值的功能正在实现中,常量值可以获取到,变量只能获取到类型 还有一些相关的优化在实现中,还需要等一段时间

Adrninistrator avatar May 25 '22 11:05 Adrninistrator

请问获取方法参数值的功能有了吗,最近也遇到了需要获取到值的问题

cuiaixin avatar Feb 27 '23 02:02 cuiaixin

请问获取方法参数值的功能有了吗,最近也遇到了需要获取到值的问题

开发完了,文档还没写,需要使用的话可以先把代码提交上来

Adrninistrator avatar Feb 27 '23 03:02 Adrninistrator

请问获取方法参数值的功能有了吗,最近也遇到了需要获取到值的问题

开发完了,文档还没写,需要使用的话可以先把代码提交上来 求大佬提交,目前嗷嗷待哺。使用上能简单指导一下吗,是修改 config.properties的配置不~

cuiaixin avatar Feb 27 '23 03:02 cuiaixin

请问获取方法参数值的功能有了吗,最近也遇到了需要获取到值的问题

开发完了,文档还没写,需要使用的话可以先把代码提交上来 求大佬提交,目前嗷嗷待哺。使用上能简单指导一下吗,是修改 config.properties的配置不~

有空了我提交一下,基本使用方式没有变,配置参数有一点调整

Adrninistrator avatar Feb 27 '23 03:02 Adrninistrator

请问获取方法参数值的功能有了吗,最近也遇到了需要获取到值的问题

开发完了,文档还没写,需要使用的话可以先把代码提交上来 求大佬提交,目前嗷嗷待哺。使用上能简单指导一下吗,是修改 config.properties的配置不~

有空了我提交一下,基本使用方式没有变,配置参数有一点调整

好的嘞~感恩的心,坐等

cuiaixin avatar Feb 27 '23 03:02 cuiaixin

再请教下大佬,目前遇到的问题是 : 例如 方法获取特征值:getFeature(ReverseOrderConstants.ReverseOrderFeature.STATE_FLOW_NODE_MAP_V2),其中STATE_FLOW_NODE_MAP_V2是ReverseOrderFeature类下面定义的一个static final类型的变量(public final static String STATE_FLOW_NODE_MAP_V2 = "stateFlowNodeMapV2";) ,这种目前是可以拿到STATE_FLOW_NODE_MAP_V2对应的字段值stateFlowNodeMapV2的不~

cuiaixin avatar Feb 27 '23 07:02 cuiaixin

再请教下大佬,目前遇到的问题是 : 例如 方法获取特征值:getFeature(ReverseOrderConstants.ReverseOrderFeature.STATE_FLOW_NODE_MAP_V2),其中STATE_FLOW_NODE_MAP_V2是ReverseOrderFeature类下面定义的一个static final类型的变量(public final static String STATE_FLOW_NODE_MAP_V2 = "stateFlowNodeMapV2";) ,这种目前是可以拿到STATE_FLOW_NODE_MAP_V2对应的字段值stateFlowNodeMapV2的不~

可以的,常量值可以获取到

Adrninistrator avatar Feb 27 '23 07:02 Adrninistrator

https://github.com/Adrninistrator/java-all-call-graph/blob/main/change_log.md#1121-%E6%94%AF%E6%8C%81%E8%8E%B7%E5%8F%96%E6%96%B9%E6%B3%95%E8%B0%83%E7%94%A8%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%9A%84%E5%8F%82%E6%95%B0%E5%80%BC%E8%A2%AB%E8%B0%83%E7%94%A8%E5%AF%B9%E8%B1%A1%E7%B1%BB%E5%9E%8B%E7%AD%89

已支持:获取方法调用中使用的参数值、被调用对象类型等 版本:1.0.0 在使用最新版本,执行 TestRunnerWriteDb.main(args); 时报了空指针 java.lang.NullPointerException at com.adrninistrator.jacg.runner.base.AbstractRunner.beforeExit(AbstractRunner.java:291) at com.adrninistrator.jacg.runner.base.AbstractRunner.run(AbstractRunner.java:266) at com.adrninistrator.jacg.runner.base.AbstractRunner.run(AbstractRunner.java:79) at test.jacg.TestRunnerWriteDb.main(TestRunnerWriteDb.java:14)

cuiaixin avatar Feb 27 '23 12:02 cuiaixin

https://github.com/Adrninistrator/java-all-call-graph/blob/main/change_log.md#1121-%E6%94%AF%E6%8C%81%E8%8E%B7%E5%8F%96%E6%96%B9%E6%B3%95%E8%B0%83%E7%94%A8%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%9A%84%E5%8F%82%E6%95%B0%E5%80%BC%E8%A2%AB%E8%B0%83%E7%94%A8%E5%AF%B9%E8%B1%A1%E7%B1%BB%E5%9E%8B%E7%AD%89 已支持:获取方法调用中使用的参数值、被调用对象类型等 版本:1.0.0 在使用最新版本,执行 TestRunnerWriteDb.main(args); 时报了空指针 java.lang.NullPointerException at com.adrninistrator.jacg.runner.base.AbstractRunner.beforeExit(AbstractRunner.java:291) at com.adrninistrator.jacg.runner.base.AbstractRunner.run(AbstractRunner.java:266) at com.adrninistrator.jacg.runner.base.AbstractRunner.run(AbstractRunner.java:79) at test.jacg.TestRunnerWriteDb.main(TestRunnerWriteDb.java:14)

配置文件需要重新释放一下,参数配置需要根据注释修改 上面的报错我优化下

Adrninistrator avatar Feb 27 '23 12:02 Adrninistrator

https://github.com/Adrninistrator/java-all-call-graph/blob/main/change_log.md#1121-%E6%94%AF%E6%8C%81%E8%8E%B7%E5%8F%96%E6%96%B9%E6%B3%95%E8%B0%83%E7%94%A8%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%9A%84%E5%8F%82%E6%95%B0%E5%80%BC%E8%A2%AB%E8%B0%83%E7%94%A8%E5%AF%B9%E8%B1%A1%E7%B1%BB%E5%9E%8B%E7%AD%89 已支持:获取方法调用中使用的参数值、被调用对象类型等 版本:1.0.0 在使用最新版本,执行 TestRunnerWriteDb.main(args); 时报了空指针 java.lang.NullPointerException at com.adrninistrator.jacg.runner.base.AbstractRunner.beforeExit(AbstractRunner.java:291) at com.adrninistrator.jacg.runner.base.AbstractRunner.run(AbstractRunner.java:266) at com.adrninistrator.jacg.runner.base.AbstractRunner.run(AbstractRunner.java:79) at test.jacg.TestRunnerWriteDb.main(TestRunnerWriteDb.java:14)

配置文件需要重新释放一下,参数配置需要根据注释修改 上面的报错我优化下

好像木有用大佬,我把之前的配置文件都删掉重新释放了一遍,按照提示修改了配置文件还是报这个空指针错误😭

cuiaixin avatar Feb 27 '23 13:02 cuiaixin

https://github.com/Adrninistrator/java-all-call-graph/blob/main/change_log.md#1121-%E6%94%AF%E6%8C%81%E8%8E%B7%E5%8F%96%E6%96%B9%E6%B3%95%E8%B0%83%E7%94%A8%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%9A%84%E5%8F%82%E6%95%B0%E5%80%BC%E8%A2%AB%E8%B0%83%E7%94%A8%E5%AF%B9%E8%B1%A1%E7%B1%BB%E5%9E%8B%E7%AD%89 已支持:获取方法调用中使用的参数值、被调用对象类型等 版本:1.0.0 在使用最新版本,执行 TestRunnerWriteDb.main(args); 时报了空指针 java.lang.NullPointerException at com.adrninistrator.jacg.runner.base.AbstractRunner.beforeExit(AbstractRunner.java:291) at com.adrninistrator.jacg.runner.base.AbstractRunner.run(AbstractRunner.java:266) at com.adrninistrator.jacg.runner.base.AbstractRunner.run(AbstractRunner.java:79) at test.jacg.TestRunnerWriteDb.main(TestRunnerWriteDb.java:14)

配置文件需要重新释放一下,参数配置需要根据注释修改 上面的报错我优化下

好像木有用大佬,我把之前的配置文件都删掉重新释放了一遍,按照提示修改了配置文件还是报这个空指针错误😭

日志再往前找一下,应该会有提示失败原因,上面这里的空指针已经是操作执行完毕的处理了

Adrninistrator avatar Feb 27 '23 13:02 Adrninistrator

debug解决了,是我的包冲突了,感谢大佬

cuiaixin avatar Feb 27 '23 13:02 cuiaixin

debug解决了,是我的包冲突了,感谢大佬

有问题提出来,看看功能有没满足要求,文档后面慢慢完善

Adrninistrator avatar Feb 27 '23 13:02 Adrninistrator

debug解决了,是我的包冲突了,感谢大佬

有问题提出来,看看功能有没满足要求,文档后面慢慢完善

ignore_caller_class_keyword.properties 当这个配置文件为空的时候 执行 TestRunnerGenAllGraph4Caller.main(args); 会报空指针 java.lang.NullPointerException at java.util.ArrayList.(ArrayList.java:178) at com.adrninistrator.jacg.conf.ConfigureWrapper.getOtherConfigSet(ConfigureWrapper.java:228) at com.adrninistrator.jacg.runner.base.AbstractRunnerGenCallGraph.initIgnoreInfo(AbstractRunnerGenCallGraph.java:154) 看起来是 logger.info("使用配置文件中的参数 {}\n{}", configFileName, StringUtils.join(new ArrayList<>(configSet), " ")); 这一行的问题

cuiaixin avatar Feb 27 '23 14:02 cuiaixin

有3个配置文件名改漏了,有空了我再提交一下

修改前:

ignore_caller_class_keyword.properties
ignore_caller_full_method_prefix.properties
ignore_caller_method_prefix.properties

修改后:

ignore_class_keyword.properties
ignore_full_method_prefix.properties
ignore_method_prefix.properties

Adrninistrator avatar Feb 28 '23 01:02 Adrninistrator

debug解决了,是我的包冲突了,感谢大佬

有问题提出来,看看功能有没满足要求,文档后面慢慢完善

ignore_caller_class_keyword.properties 当这个配置文件为空的时候 执行 TestRunnerGenAllGraph4Caller.main(args); 会报空指针 java.lang.NullPointerException at java.util.ArrayList.(ArrayList.java:178) at com.adrninistrator.jacg.conf.ConfigureWrapper.getOtherConfigSet(ConfigureWrapper.java:228) at com.adrninistrator.jacg.runner.base.AbstractRunnerGenCallGraph.initIgnoreInfo(AbstractRunnerGenCallGraph.java:154) 看起来是 logger.info("使用配置文件中的参数 {}\n{}", configFileName, StringUtils.join(new ArrayList<>(configSet), " ")); 这一行的问题

提交了,1.0.1版本

Adrninistrator avatar Feb 28 '23 05:02 Adrninistrator

ava.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer at com.adrninistrator.jacg.runner.RunnerGenAllGraph4Caller.genAllGraph4Caller(RunnerGenAllGraph4Caller.java:591) at com.adrninistrator.jacg.runner.RunnerGenAllGraph4Caller.handleOneTask(RunnerGenAllGraph4Caller.java:421) at com.adrninistrator.jacg.runner.RunnerGenAllGraph4Caller.lambda$runAndWait$0(RunnerGenAllGraph4Caller.java:132) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 大佬帮忙看下最新的问题,在执行 TestRunnerGenAllGraph4Caller 的时候报了这个问题

cuiaixin avatar Mar 22 '23 04:03 cuiaixin

使用的什么数据库,是MySQL吗,mysql-connector是什么版本,我使用com.mysql:mysql-connector-j:8.0.31是正常的 使用H2数据库也是正常的

Adrninistrator avatar Mar 22 '23 04:03 Adrninistrator

使用的h2数据库,诶嘿那有点奇怪

cuiaixin avatar Mar 22 '23 05:03 cuiaixin

看一下H2数据库的版本,com.h2database:h2:2.1.214是正常的

Adrninistrator avatar Mar 22 '23 05:03 Adrninistrator

okkk,我看下是不是我的版本问题

cuiaixin avatar Mar 22 '23 05:03 cuiaixin

换到了 2.1.214版本正常了,之前用的1.4.200的版本,应该是低版本的问题

cuiaixin avatar Mar 22 '23 05:03 cuiaixin

cool!

beanww avatar May 24 '23 07:05 beanww