Adrninistrator / java-all-call-graph

Generate all call graph for Java Code.
Apache License 2.0
431 stars 110 forks source link

是否可以在调用链中加入调用函数原始类的起始行数信息? #31

Open longbao8 opened 1 year ago

longbao8 commented 1 year ago

如果调用函数所在类出现多个同名函数,对调用函数进行后续处理存在风险。。。当然这只是个建议🥺

Adrninistrator commented 1 year ago

[1]# org.mybatis.spring.MyBatisExceptionTranslator:translateExceptionIfPossible (MyBatisExceptionTranslator:88) !entry!

[1]# [BatchExecutor:57] org.apache.ibatis.session.Configuration:newStatementHandler

现在向上或者向下的调用链里会在后面或者前面显示对应的调用类的代码行号 是需要在哪里加上起始行数呢

longbao8 commented 1 year ago

比如:[1]#  [WriteBufferBenchmarks:76] zipkin2.internal.WriteBuffer:writeVarint 在这一行中显示调用函数在WriteBufferBenchmarks类中的起始行数为76,可否在writeVarint后面加上该函数源始文件的起始行数或者加入函数参数,避免有相同函数名出现混淆

------------------ 原始邮件 ------------------ 发件人: "Adrninistrator/java-all-call-graph" @.>; 发送时间: 2023年3月17日(星期五) 下午2:21 @.>; @.**@.>; 主题: Re: [Adrninistrator/java-all-call-graph] 是否可以在调用链中加入调用函数原始类的起始行数信息? (Issue #31)

[1]# org.mybatis.spring.MyBatisExceptionTranslator:translateExceptionIfPossible (MyBatisExceptionTranslator:88) !entry!

[1]# [BatchExecutor:57] org.apache.ibatis.session.Configuration:newStatementHandler

现在向上或者向下的调用链里会在后面或者前面显示对应的调用类的代码行号 是需要在哪里加上起始行数呢

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

Adrninistrator commented 1 year ago

https://github.com/Adrninistrator/java-all-call-graph/blob/main/how_to_use.md#342-c12-%E5%B0%86%E6%96%B9%E6%B3%95%E5%AE%8C%E6%95%B4%E8%B0%83%E7%94%A8%E9%93%BE%E5%90%91%E4%B8%8A%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6

配置文件_jacg_config/config.properties中的参数 call.graph.output.detail 输出文件中调用关系的详细程度

1: 最详细,包含完整类名+方法名+方法参数

把这个参数改成1试一下,看能不能满足要求

longbao8 commented 1 year ago

谢谢,忘了看配置文件了,当时选的2,打扰您了,抱歉!

------------------ 原始邮件 ------------------ 发件人: "Adrninistrator/java-all-call-graph" @.>; 发送时间: 2023年3月17日(星期五) 下午3:39 @.>; @.**@.>; 主题: Re: [Adrninistrator/java-all-call-graph] 是否可以在调用链中加入调用函数原始类的起始行数信息? (Issue #31)

https://github.com/Adrninistrator/java-all-call-graph/blob/main/how_to_use.md#342-c12-%E5%B0%86%E6%96%B9%E6%B3%95%E5%AE%8C%E6%95%B4%E8%B0%83%E7%94%A8%E9%93%BE%E5%90%91%E4%B8%8A%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6

配置文件_jacg_config/config.properties中的参数 call.graph.output.detail 输出文件中调用关系的详细程度

1: 最详细,包含完整类名+方法名+方法参数

把这个参数改成1试一下,看能不能满足要求

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

longbao8 commented 1 year ago

对调用函数的参数方面有缺陷,主要是对类参数只能识别成java.lang.Object类型 image-20230320213626406 image-20230320213708512

------------------ 原始邮件 ------------------ 发件人: "Adrninistrator/java-all-call-graph" @.>; 发送时间: 2023年3月17日(星期五) 下午3:39 @.>; @.**@.>; 主题: Re: [Adrninistrator/java-all-call-graph] 是否可以在调用链中加入调用函数原始类的起始行数信息? (Issue #31)

https://github.com/Adrninistrator/java-all-call-graph/blob/main/how_to_use.md#342-c12-%E5%B0%86%E6%96%B9%E6%B3%95%E5%AE%8C%E6%95%B4%E8%B0%83%E7%94%A8%E9%93%BE%E5%90%91%E4%B8%8A%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6

配置文件_jacg_config/config.properties中的参数 call.graph.output.detail 输出文件中调用关系的详细程度

1: 最详细,包含完整类名+方法名+方法参数

把这个参数改成1试一下,看能不能满足要求

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

Adrninistrator commented 1 year ago

可以发一下具体的代码和生成的结果吗

longbao8 commented 1 year ago

可以发一下具体的代码和生成的结果吗

不知道中午发的图片是否显示,现有重新发送一次 对调用函数的参数方面有缺陷,主要是对类参数只能识别成java.lang.Object类型 image-20230320213626406 image-20230320213708512

Adrninistrator commented 1 year ago

https://github.com/Adrninistrator/java-all-call-graph/blob/main/java-all-call-graph/src/main/resources/_jacg_config/config.properties

# 生成向下的方法完整调用链时,是否显示原始方法调用信息(包括被调用对象、参数的类型、值、静态变量、静态变量方法等)
# false: 显示方法调用自定义数据,不显示原始方法调用信息,true: 不显示方法调用自定义数据,显示原始方法调用信息
caller.show.raw.method.call.info=false

这个参数要设置成true,才会在结果里显示对应的被调用对象和参数的类型和值

如果这个chineseSpan是在构造函数里初始化的,应该可以获取到对应的类型

后面版本会修改这个参数的配置方式,现在可以这么用