JDK源码调试配置

正常情况下,当我调试的代码涉及到了JDK的源码时,在debug时的Variables界面里面许多变量以及它的显示时跟我们自定义的Java源文件是不同的。比如当调试到HashMap.java的put方法时,显示是这样的:
JDK源码调试配置_第1张图片
可以看到Variables只有this、arg0和arg1三个变量,分别对应当前HashMap实例和put传入的两个参数key和value。

如果你想详细看方法里面各个变量的值是如果计算和变化的话,这种程度的显示显然是不够的。

那么有什么办法可以解决呢,在网上找了很久总算找到了一篇博客,按照里面的步骤操作完之后就可以看到JDK源码内部方法各个变量的详细值了,效果图如下:
JDK源码调试配置_第2张图片
附原文链接:
https://blog.csdn.net/cherrycheng_/article/details/51004386

下面是我按照上面博客整理出的步骤:
1、找个位置新建文件夹jdk7_src和jdk7_rt-debug(我的是D:\JDK\jdk7_rt-debug和D:\JDK\jdk7_src)

2、将JDK下的src.zip(C:\Program Files (x86)\Java\jdk1.7.0_75\src.zip)复制到jdk7_src目录,解压只留下java,javax,org三个文件夹其他删除。

3、cmd进入jdk7_src目录执行指令:

dir /B /S /X *.java > filelist.txt

4、把JDK下的rt.jar(C:\Program Files (x86)\Java\jdk1.7.0_75\jre\lib\rt.jar)复制到jdk7_src

5、cmd执行指令生成可调试的class文件夹:

javac -J-Xms16m -J-Xmx1024m -sourcepath D:\JDK\jdk7_src -cp D:\JDK\jdk7_src\rt.jar -d D:\JDK\jdk7_rt-debug -g @filelist.txt >> log.txt

6、cmd进入jdk7_rt-debug目录将class文件夹打包成jar:

jar cf0 rt_debug.jar *

7、把rt_debug.jar放入JDK中(C:\Program Files (x86)\Java\jdk1.7.0_75\jre\lib\endorsed),endorsed没有这个文件夹就新建一个

8、将rt_debug.jar加入Eclipse使用的JDK中。Window->Preferences->Java->Installed JREs->Edit->Add External JARs,选择rt_debug.jar加入,加入之后在jar列表中选中rt_debug.jar选择Source Attachment->External location->External File选择JDK下的src.zip即可

你可能感兴趣的:(JVM)