今天Debug代码,跟踪到jdk里源码时,只能看到变量,却无法查到变量的值。怎么办呢?
1. 下载使用带有debug信息的JDK。
下载地址:http://download.java.net/jdk6/ 。当前最新版本为Standard Edition 6u25 Binary Snapshot Releases。
下载安装后,在eclipse添加新的JRE。
2. 自己动手重新编译JDK
上面的方法很简单,但是官网上一般只给出最新版本的Debug版,如果要Debug用某个特殊版本怎么办呢?自己编译嘛!前人也给出了很多思路。
1. Enabling debugging inside JRE classes
介绍了GNU utilities for Win32工具。
2. General: Recompile (Some of) The JDK to Ease Debugging
这篇文章用的是 bat 脚本。
3. Should Sun build rt.jar with debug information enabled?
这篇直接给出了Ant脚本。
4. 建一个Java工程,利用Eclipse等IDE工具进行编译。
四种方法都试了一下,还是觉得写Ant脚本最简单。不管用哪种方法,打好包后可以通过 Xbootclasspath/p: 参数来优先加载我们的rt_debug.jar。
如果要在Eclipse中调试,需要在原来的JRE上加上我们新的rt_debug.jar。
注意rt_debug.jar要在原来的rt.jar 之前。