Eclipse debug ‘Source not found’

用Eclispe进行Debug时一直被一个问题所困扰:Source not found.

问题产生的原因是调试进入了一个没有源码的jar包里。

 

简短说明:

Edit Source Lookup Path… 可以解决Debug过程中找不到源码的问题,PS,需要重启服务。

Configure Build Path 中可以给jarattach上源码,这个管的是阅读代码时可以看到jar包里的内容。

 

具体步骤:

之前通过点击Edit Source Lookup Path … 来加进源码搜索路径

但经常遇到的问题是加入后一点OK,界面闪一下,就又回到这个’Source not found’界面了。

 

今天因为一定要调试源码里的东西,所以彻底搞了一下这个问题。

 

我的环境是: + Maven 3.2.1

首先把源码工程down下来,并且手动打了source.jar,如果不愿意打source.jar,也可以直接引目录,先进入src/main/java目录下,与com包在同一级目录下,然后执行命令:

将生成好的xxx-source.jar剪切粘贴到外部的一个目录里。然后在Edit Source Lookup Path … 里Add … -> ExternalArchive

选择你要加要xxx-source.jar

这时界面会出现一闪,然后又回到’Edit Source Lookup Path …’这个界面的情况,其实,关闭服务重启一下就好了,我一直不明白为什么,又是重新加,又是想办法加别的jar或工程,最后搞乱了。

如果加了不该加的Lookup Path,可以点菜单Run -> Debug Configurations … -> Source 来管理LookupPath

下面是一个复杂的例子:

用Maven管理大规模jar包集和项目集时,经常遇到引入多个jar包的版本的问题,例如当前有三个工程,P1引用P2,P2引用P3,P2依赖了A-1.0.jar,P3依赖了A-2.0.jar。根据Maven选择jar包,先显式,再深度,后顺序的原则,A-1.0.jar最终被终会被工程所依赖,因此,在Configure Build Path时,要把1.0的源码包attach给这个jar,在debug时Edit Source Lookup Path… 时也要把1.0的源码包选中,我在试验时就是把2.0的源码包编给了Lookup Path,然后在Configure Build Path时无论把哪个包attach上,都在debug时发生了行偏移。

 

所以,Configure Build Path和Edit Source Lookup Path是两回事,一个管阅读代码,一个管调试代码,但对于那种入口代码,也就是前面没有代码调它,而是容器调用的代码,一定要先阅读到它,才能打上断点啊,不是吗?

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值