【背景】
折腾:
【记录】用antlr的preprocess去预处理一个新的eddl文件去除eddl中不支持的元素对应的文件内容
期间,
由于没有添加ANTLR的源码,而导致:
想要去对于antlr预处理文件出现异常时去调试,结果无法进行源码级调试:
希望的是,可以打开对应的源码并且定位到对应的行。
【解决过程】
1.之前就弄过。
现在再去弄一下。
先找到antlr的源码。
此处是之前就现在好的,
antlr-3.5-complete.jar
所对应的源码:
2.然后去Eclipse中,给当前项目添加对应源码:
经过一番折腾,最后终于搞懂:
如何在Eclipse中,添加对应的源码,以便实现,在调试的时候,可以找到对应的源码,进行源码调试了。
当出错时,找不到对应的源码时,点击:
Change Attached Source
然后选择:
External location -> External Folder -> 选择合适的目录 -> OK:
3.其中,所谓合适的目录的意思是:
对应的目录,是的确真正包含了你的相关库所对应的源码。
比如我这里的:
其中的:
D:/DevTool/ANTLR/antlr/src/antlr3-antlr-3.5
中,真正的包含了,对应的此处的antlr的相关的所有的源码:
当你点击出错信息中显示的文件(包含行数)的时候:
Eclipse会自动搜索该文件夹及其子文件夹,找到合适的文件,并打开对应的源码,定位到对应的行。
最终实现了,点击对应的异常错误,可以打开对应的class所对应的java源代码并且定位到对应的位置了:
4.注意:
1.之前我一直是尝试去
Properties -> Java Build Path->Libraries -> Add External Class Folder
中去添加,库所对应的源码的路径,比如下面几次的尝试:
结果却是:
当异常时,点击出错信息中的文件,Eclipse是无法找到对应的源码的,无法实现源码级调试的。
【总结】
想要在Eclipse中实现源码级调试:
不是去
右击项目->Properties -> Java Build Path->Libraries -> Add External Class Folder
中添加路径;
而是去:
当异常出错,出错信息中,包含了对应的源码文件名和行号
点击对应的文件名加行号,Eclipse无法自动找到对应的源码时
会显示对应的二进制文件(此处java是.class的那个文件的界面)
然后去:
Change Attached Source -> External location -> External Folder -> 选择合适的目录
此时,再次点击对应的文件名加行号,Eclipse就可以搜索并找到对应的源码和行号,定位到该文件的对应位置了。