Cover image

JDB链接源码

Nov 16, 2015

IDE 的操作会有一个好处,一键集成式编程,底层什么都不必考虑,但会导致一个问题是———— 一旦离开了IDE,你会发现到处都是问题。

没有IDE的debug工具,我们进行debug的话只能利用最原始的方式JDB。不过个人感觉,JDB比之 GDB还是有很大的不足之处的,最大的问题是没有缩写,每个命令得多敲好多字母。另外就是没法 上翻历史记录,如果某次你不小心打错了很长一个class的某一个字母,恭喜你,下次还得重新全部 输入。不过,到可以用来锻炼手速了。

JDB调试命令还是比较简单的,没有javac那么复杂。直接jdb class文件就可以,如果class不 在当前目录下,需要指定一下-classpath,设定class文件的路径。

但主要是JDB的list命令想要进行查看源码信息的时候,总会显示找不到源文件。下面分两种情况来说明下。

不包含Package

jdbuse命令可以指定源文件的位置。假设src/文件夹中存放的是源码文件,class/文件夹中存放 的是类文件,我们在class/目录下进行jdb的时候,可以利用use ../src来找到源码的位置。

具体可以参考 在jdb中链接源码,@kingquake21大神讲的很详细。

包含Package信息的源码链接

当我们如果有一个java中包含package信息,假设是cn.edu.school.group.project,而该文件放在src/文件夹下的 话,继续用上述方法也是找不到源码的。估计jdb查找源码的过程跟查找class的过程是差不多的,也是把 package.号转换成路径来查找,所以我们需要将src/下的文件放到src/cn/edu/school/group/project/中,这样 在list才能找到源码信息。


16 Nov 2015

Post by: MetaCoder