eclipse如何debug调试jdk源码(任何源码)并显示局部变量

时间:2023-11-12 09:47:56

  最近要看struts2源码 仿照了一下查看jdk源码的方式

  首先你要有strtus2的jar包和源码,在struts官网上下载时,选择full版本,里面会有src也就是源码了。

  jar导入项目,保证可以引用。然后要把struts2目录下的src打包成zip。在项目上右键,build path。

eclipse如何debug调试jdk源码(任何源码)并显示局部变量

选择红框中的,然后找之前打包的src.zip,添加进来,再查看源码即可。

///////////////////////////////////一下为原文内容

1如何debug调试jdk源码

  无法进入源码,大多数是line unavailable,需要设置。

  【Window】-【Preference】-【Java】-【Installed JREs】

  这里可以看到Eclipse可以使用的Java环境,默认使用的是JRE(Java Runtime Environment),是不支持调试的,需要替换成JDK(Java Development Kit)。

eclipse如何debug调试jdk源码(任何源码)并显示局部变量

【Add】-【Next】-【Add JRE】

在【DIrectory】选择机器上安装的JDK的目录,不是JRE的目录。此时JDK的jar文件都会默认选择JDK目录下的src.zip作为source,如果没有,自行手动设置。

eclipse如何debug调试jdk源码(任何源码)并显示局部变量

然后,选择使用JDK。

eclipse如何debug调试jdk源码(任何源码)并显示局部变量

然后,在项目的【Build Path】里使用刚刚添加的JDK,去除默认的JRE引用。

结束,现在可以在debug中调试jdk源码了。

2.如何在debug调试时显示局部变量

  原因在于oracle提供的jre中rt.jar不带debug信息:orcale在编译src时使用了 javac -g:none,意思是不带任何调试信息,这样可以减小rt.jar的大小。若想正常调试jdk,就只能重新编译src.zip。这里介绍下编译src.zip的方法。

  1. 在eclipse中新建一个java项目“jdk”,然后在src目录上导入"Archive File",选择源码src.zip导入,导完目录结构如下(不用管编译报错):

    eclipse如何debug调试jdk源码(任何源码)并显示局部变量

  2. 右键项目export...,然后导出为jar包,起名为rt_debug.jar:

    eclipse如何debug调试jdk源码(任何源码)并显示局部变量

    eclipse如何debug调试jdk源码(任何源码)并显示局部变量

  3. 修改eclipse的jre设置,将rt_debug.jar添加到jre中,并移动到最前面:

    eclipse如何debug调试jdk源码(任何源码)并显示局部变量

  4. 最后再查看debug变量,可以看到变量值了:

    eclipse如何debug调试jdk源码(任何源码)并显示局部变量

    eclipse如何debug调试jdk源码(任何源码)并显示局部变量