Jdk源码调试

来源:互联网 发布:高新区行知小学怎么样 编辑:程序博客网 时间:2024/06/05 06:16
在调试过程中我们往往会进入到jdk的源码当中去,此时显示的往往是一个class文件,其实jdk自身是带有源码包的,按照以下步骤操作即可:
在eclipse的Windows-Preferences-Java-Installed JRE下,选择安装的jdk,点edit,然后在列出的jre system libraries列表中选择rt.jar,设置其中的Source attachment为C:\java\jdk1.6.0_10\src.zip(你的jdk安装目录)。

此时我们再做调试,就会发现关联到源码了,如下图所示:

文件:Debug.jpg


以上显示的是进入java.util.HashSet的add方法当中的调试情况,但问题又来了,注意到下方的Variable变量显示栏,里面只有三个变量this,arg0,arg1。arg*对应到方法参数的值,但对于局部变量int hash和int i,我们无法看到它的值,这种情况往往给我们的调试带来不便。
为什么会出现这种情况呢?感兴趣的可以参考这个贴子:http://hllvm.group.iteye.com/group/topic/25798。
问题怎么解决呢?我们需要一个debug版本的jdk,有两种途径:自己编译debug版本的jdk,或直接从网上下载。
基于jdk源码编译生成jdk的过程十分复杂,有兴趣的可以去了解,如果嫌繁琐的话,可以直接去官方下载debug版本的jdk,http://download.java.net/jdk6/6u25/promoted/b03/index.html。
此时我们将jdk替换为fastdebug,重新调试,如下图所示:


Fastdebug-debug.jpg

此时我们在variable一栏可以清楚地看到局部变量名了。

0 0
原创粉丝点击