问题现象

在idea中打开class文件会提示行号与反编译的结果不符,正常打断点挑食的时候会发现代码没有在正确的位置停下(一般是在打断点的行之前停止)

可能的原因

目前这个问题只在idea社区版中发现,专业版不会有这个问题,考虑到两个版本使用的反编译插件不同(有些文件在社区版上无法反编译出内容,只有函数名),应该是有些编译工具在编译的时候虽然删除了注释的内容,但是在计算行号的时候没有忽略这些空白行,反编译插件反编译的时候重新处理了行号

可以解决但是不太优雅的方法

在调用class内方法之前打断点,然后利用step into进入方法内部,这时候就可以利用单步调试一步一步走了,但是如果在jar包内的调用链路过长,还是会有问题,这种场景暂时就无解了

标签: none

评论已关闭