Jdk源码调试
2014-02-24 11:55
260 查看
在调试过程中我们往往会进入到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安装目录)。
此时我们再做调试,就会发现关联到源码了,如下图所示:
以上显示的是进入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,重新调试,如下图所示:
此时我们在variable一栏可以清楚地看到局部变量名了。
在eclipse的Windows-Preferences-Java-Installed JRE下,选择安装的jdk,点edit,然后在列出的jre system libraries列表中选择rt.jar,设置其中的Source attachment为C:\java\jdk1.6.0_10\src.zip(你的jdk安装目录)。
此时我们再做调试,就会发现关联到源码了,如下图所示:
以上显示的是进入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,重新调试,如下图所示:
此时我们在variable一栏可以清楚地看到局部变量名了。
相关文章推荐
- 调试JDK源码,无法追踪显示局部变量的解决方案
- eclipse如何debug调试jdk源码
- IDEA调试JDK源码的详细过程
- eclipse中jdk源码调试步骤
- 解决eclipse无法断点调试JDK源码的问题
- eclipse如何debug调试jdk源码
- JDK源码调试
- 如何在eclipse中debug调试进入JDK源码及显示调试过程中的局部变量的值
- Eclipse调试进入JDK源码
- Eclipse调试进入JDK源码
- Eclipse调试进入JDK源码
- Eclipse调试进入JDK源码
- eclipse调试jdk源码
- Java| 调试JDK源码
- 调试JDK源码
- eclipse如何debug调试jdk源码
- 如何调试JDK1.8源码(查看变量值、对.class文件打断点调试)
- netBeans调试时不进入java内部类(jdk源码)的方法
- 解决调试JDK源码时,不能查看变量的值问题