【背景】
折腾:
期间,在基于Eclipse的ADT中调试android程序。
之前已经加了个jar包
注:是直接拷贝对应的jar,然后在ADT的Eclipse中粘贴而加到项目的libs下面的。
现在先要去添加对应的代码,以便调试时,对应函数可以找到源码。
【解决过程】
1.继续参考之前的:
【记录】在Eclipse中给ANTLR添加源码实现ANTLR的源码级的调试
但是发现:
此处,在执行到对应的函数时,在Class File Editor中,没有看到那个 Change Attached Source的按钮。
但是后来发现是:
在非调试期间,Ctrl+鼠标单击,对应的函数,在弹出的Class File Editor中是没有Change Attached Source的按钮的。
2.而后来去调试期间,F5单步:
的话,是可以看到有:
4.这样的话,就可以去添加对应的源码了:
然后就去加载了:
结果竟然找不到:
5.后来才注意到,原来此处,正在load的不是我上面单步的那个
UsbSerialProber.findSupportedUsbSerialDevice
而是:
dalvik.system.BaseDexClassLoader
所以:
继续执行,直到Class File Editor去找
UsbSerialProber
或
findSupportedUsbSerialDevice:
时:
再去加载对应的源码,但是很明显,此处却没 了对应添加源码的按钮了。
没法添加了。。。
6.感觉好像是那句:
The JAR of this class file belong to container ‘Android Dependencies’ which does not allow modifications to source attachments on its entries.
而使得没法添加源码?
去研究看看:
【总结】
最终的办法是:
在调试期间,即Debug视图下, 右击那个Debug的Tab中的当前的Thread Edit Source Lookup->Default->Add->Java Project->选择你的jar所对应的源码所在的项目->OK->OK 再继续debug或者是重新debug,即可实现:F5可以进入对应的源码,进行源码调试了。 提示: 个人猜测: 即使你没有源码所对应的项目,估计通过添加对应的文件夹(Absolute File Path或File System Directory之类的),应该也是可以添加源码的。 |
详见: