【记录】在Eclipse中给ANTLR添加源码实现ANTLR的源码级的调试

【背景】

折腾:

【记录】用antlr的preprocess去预处理一个新的eddl文件去除eddl中不支持的元素对应的文件内容

期间,

由于没有添加ANTLR的源码,而导致:

想要去对于antlr预处理文件出现异常时去调试,结果无法进行源码级调试:

click lexer java invalid line number can not open source

希望的是,可以打开对应的源码并且定位到对应的行。

 

【解决过程】

1.之前就弄过。

现在再去弄一下。

先找到antlr的源码。

此处是之前就现在好的,

antlr-3.5-complete.jar

所对应的源码:

antlr-3.5.tar.gz

2.然后去Eclipse中,给当前项目添加对应源码:

经过一番折腾,最后终于搞懂:

如何在Eclipse中,添加对应的源码,以便实现,在调试的时候,可以找到对应的源码,进行源码调试了。

当出错时,找不到对应的源码时,点击:

Change Attached Source

 

when not found source click change attached source

然后选择:

External location -> External Folder -> 选择合适的目录 -> OK:

external location external folder choose folder ok

3.其中,所谓合适的目录的意思是:

对应的目录,是的确真正包含了你的相关库所对应的源码。

比如我这里的:

path is valid folder contain real source code

其中的:

D:/DevTool/ANTLR/antlr/src/antlr3-antlr-3.5

中,真正的包含了,对应的此处的antlr的相关的所有的源码:

当你点击出错信息中显示的文件(包含行数)的时候:

Eclipse会自动搜索该文件夹及其子文件夹,找到合适的文件,并打开对应的源码,定位到对应的行。

 

click error java class can open source and locate line

最终实现了,点击对应的异常错误,可以打开对应的class所对应的java源代码并且定位到对应的位置了:

4.注意:

1.之前我一直是尝试去

Properties -> Java Build Path->Libraries -> Add External Class Folder

中去添加,库所对应的源码的路径,比如下面几次的尝试:

java build path libraries add external class folder antlr runtime java

java build path libraries add external class folder antlr runtime java src main

结果却是:

当异常时,点击出错信息中的文件,Eclipse是无法找到对应的源码的,无法实现源码级调试的。

 

【总结】

想要在Eclipse中实现源码级调试:

不是去

右击项目->Properties -> Java Build Path->Libraries -> Add External Class Folder

中添加路径;

而是去:

当异常出错,出错信息中,包含了对应的源码文件名和行号

点击对应的文件名加行号,Eclipse无法自动找到对应的源码时

会显示对应的二进制文件(此处java是.class的那个文件的界面)

然后去:

Change Attached Source -> External location -> External Folder -> 选择合适的目录

此时,再次点击对应的文件名加行号,Eclipse就可以搜索并找到对应的源码和行号,定位到该文件的对应位置了。



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量