方法的起始行号和结束行号不准
这是来自zhengyi的邮箱的自动回复邮件。您好,您给我发邮件时我的邮箱未打开,我无法亲自回复您的邮件。我将在进入邮箱后,尽快给您回复。
可以麻烦发下代码示例和结果不
com.logexample.logdemo.TestService:test2(com.logexample.logdemo.Song) line_start: 23 line_end: 35
跑了一个服务 大多数行号都是不准的
通过class文件能获取到的方法起止行号是第一和最后一条指令的行号,和源码的不完全一样
另外我这里也遇到过一个case:就是@SneakyThrows这个标签,也会导致行号错乱。 可以复现
@SneakyThrows
这个lombok的注解应该是会使代码被编译时发生变化,所以编译后的行号和编译前匹配不上
@SneakyThrows
这个lombok的注解应该是会使代码被编译时发生变化,所以编译后的行号和编译前匹配不上
那请问针对这种case,如何能让行号正确呢? 因为可能还会有其他类似的注解or anything else导致这个编译后行号出错。
@SneakyThrows
这个lombok的注解应该是会使代码被编译时发生变化,所以编译后的行号和编译前匹配不上
那请问针对这种case,如何能让行号正确呢? 因为可能还会有其他类似的注解or anything else导致这个编译后行号出错。
虽然加上@SneakyThrows注解后方法的起止行号会变化,但是相邻方法的起止行号应该是递增的,通过字节码获取的方法起止行号范围应该是大于源码中的方法起止行号
如果需要通过源码中的方法行号,和通过字节码获取的方法起止行号,来获取对应的方法,还是能获取到的
比如源码中方法1的起行号是10~20,字节码中该方法的行号是9~21,那么10~20中间的值学是满足9~21