zoukankan      html  css  js  c++  java
  • eclipse如何debug调试jdk源码(任何源码)并显示局部变量

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

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

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

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

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

    1如何debug调试jdk源码

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

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

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

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

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

    然后,选择使用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导入,导完目录结构如下(不用管编译报错):

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

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

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

  • 相关阅读:
    C/C++中的abort、atexit、exit和_Exit
    从QQ聊天看交流的有效性
    HDU 1711 Number Sequence (KMP)
    pintos操作系统thread部分的实现
    搜狗面试的经典题(C++map按值排序,class struct的差别)
    SQL学习之使用order by 依照指定顺序排序或自己定义顺序排序
    选中多个或全中订单逻辑
    HDU 4415 Assassin's Creed(贪心)
    ashx文件中使用session提示“未将对象引用设置到对象的实例”
    .NET运行机制
  • 原文地址:https://www.cnblogs.com/GoForMyDream/p/8464914.html
Copyright © 2011-2022 走看看