如何对jdk核心包进行跟踪调试,并查看调试中的变量值?
在我们日常的java程序调试过程中,经常会对jdk的核心类进行跟踪、调试,这些jdk核心类主要存在于rt.jar包中,但由于jdk默认的rt.jar在编译打包时未指定行号等信息,因此即使rt.jar包的source attachement指定了jdk安装包下的src.zip,也不便于调试,会出现诸如不能查看调试时的变量等问题。
如何解决呢?
下面介绍的一种方法来解决上述问题,原理是对%JAVA_HOME%/src.zip指定合适的编译选项后进行重新编译,然后将当前jre所使用的rt.jar包替换为重新编译的rt.jar包。
具体的操作如下:
1、对src.zip解压缩,并建立新的工程将源码导入(略)
然后对该工程指定编译选项,如下图
2、工程中可能会有一些错误,一般都是一些转型的问题,直接修复即可;
3、将工程导出为二进制jar包(debug_rt.jar)与源码jar包(debug_rt_sources.jar),包名可随意;
4、对jre进行配置:windows->preferrences->Java->Installed JREs,对相应的jre进行编辑,将debug_rt.jar加入,并将debug_rt.jar置于最上面
将debug_rt_sources.jar与debug_rt_sources.jar进行源码关联
OK,完成。