如下图:

  

按F5进入String.startsWith,如下:

点“Edit Source Lookup Path” 附加源代码,如下图:

附加上源代码后如下:

可以看到,当鼠标放在“prefix”上时,并不能看到prefix的值,解决方法如下:

1,找到JDK源代码zip文件并解压,如下图:

2.将解压过后的src源代码中的"javax"和"launcher"删除,如下图:

3.将第二步骤中剩下的"com","java","org"三个目录拷贝到你的工程src下面,如下图:

4.进入eclipse,找到你的工程,并选中src,并刷新,如下图:

5.在做上面第4步时,由于我设置了 菜单  “Project”-->"Build Automatically",所以会自动对工程进行重新编译,如果没有设置为“"Build Automatically"”,需要先“Project”-->"Clean..."然后 “Project”--->"Build Project"  (编译过程中会有一些错误提示,但不受影响)

6.经过第5步的编译过后,就可以看到编译成功的classes文件,如下图:

7 .先将第6步图中的“debugjdk”目录删除 然后对仅剩下的 com,java,org三个目录的classes重新打包成一个JAR文件,如下图:

("c:\Program Files\Java\jdk1.8.0_131\bin"\jar cf0 debugjdk.jar *       前面的路经是你自已的JDK路经)

8.经过第7步的打包,我们可以看到成功打包的JAR文件如下:

9.将这个debugjdk.jar剪切到你的jdk目录下,以备后续使用,如下图:

10.进入你的eclipse工程,将src下面的com ,java ,org三个源文件目录删除掉,删除后如下图示:

11.选中工程,右键,选择reference ,如下图:

12.在打开的页面上,以次做如下操作,如下图:

13.接着第12步 点5 “Edit...”打开如下图,继续操作如下:

上图中的debugjdk.jar就是我们剪切到jdk目录下面我们重新压缩的那个jar

14.接着13步,将debugjdk.jar  调整到rt.jar上面,如下图:

选中debugjdk.jar,一直点up按钮,直到调整到rt.jar上面

15.接着第14步,继续往下做,给debugjdk.jar附加源代码,如下图:

src.zip文件,就是jdk目会下的jdk源代码zip文件

16,对上面的窗口,依次应用并关闭

17,返回我们的工程,再次调试,就可以查看jdk的变量了,如下图:

前面的17步可以概括为:对jdk的源代码进行重新编译并引用。

这样以后就可以自由调试jdk的部分原代码了。

如何调试JDK源代码并查看局部变量值的更多相关文章

  1. 调试JDK源代码-一步一步看HashMap怎么Hash和扩容

    调试JDK源代码-一步一步看HashMap怎么Hash和扩容 调试JDK源代码-ConcurrentHashMap实现原理 调试JDK源代码-HashSet实现原理 调试JDK源代码-调试JDK源代码 ...

  2. Eclipse/Myeclipse中查看和调试JDK源代码的方法

    看过这篇文章后,实践写的 http://blog.csdn.net/qq_27857857/article/details/71250401 一共做了以下几部: 第一步: 第二步: 一直next,到第 ...

  3. Android Studio 调试过程中快捷查看断点处变量值(Ctrl+Shift+I无效)?

    当你在做Keymap到Eclipse后,在debug过程中,在Eclipse中我们很喜欢用Ctrl+Shift+I去查看一个运算或者调用的结果,这样用起来很方便.但是keymap到Eclipse后,你 ...

  4. 跟踪调试JDK源码时遇到的问题及解决方法

    目录 问题描述 解决思路 在IntelliJ IDEA中调试JDK源码 在eclipse中调试JDK源码 总结 问题描述 最近在研究MyBatis的缓存机制,需要回顾一下HashMap的实现原理.于是 ...

  5. 调试JDK源码时,不能查看变量的值

    前几天本来想以debug模式看一下JDK的源码,进入调试模式时才发现,根本看不到方法里面变量值的情况.为什么呢?JDK现在的版本中,编译过后,去除了里面的调试信息.解决办法是,编译那些类,使其带有调试 ...

  6. eclipse Mars查看JDK源代码

    eclipse Mars查看JDK源代码 问题描写叙述,eclipse(mars)下看不到JDK类的声明即源代码部分的内容. 如图右击string类型: 点击打开声明.结果出现了下图所看到的的错误,无 ...

  7. J-Link调试查看变量值总是显示<not in scope> 和<cannot evaluate>问题

    原文:https://blog.csdn.net/gmpy_tiger/article/details/50395719 MDK/Keil 中,J-Link调试查看变量值总是显示<not in ...

  8. 解决debug到jdk源码时不能查看变量值的问题

    目录 如何跟踪jdk源码 1. 编译源码 2. 关联源码 3. 大功告成 如何跟踪jdk源码 看到这个标题大概大家都会在心里想谁还跟踪个源码呀,在eclipse中打个断点,以debug的方式运行,然后 ...

  9. MDK/Keil 中,J-Link调试查看变量值总是显示<not in scope>

    转载请注明出处,谢谢. MDK/Keil 中,J-Link调试查看变量值总是显示<not in scope> 原因:编译器把代码优化掉了,直接导致在仿真中变量根本没有分配内存,也就无法查看 ...

随机推荐

  1. Python使用动态的变量名

    当我们在使用Python处理一些重复性很高的事情时,有时候需要很多的变量来存放一些暂行性的数据,由于这些变量的数量很大,所以这使我们就会想到能不能使用循环来像生成数据值一样生成变量名呢,当然是可以的 ...

  2. odoo开发笔记 -- 用户配置界面如何增加模块访问权限

    在odoo设置界面,点击用户,进入用户配置界面,会看到: 访问权 | 个人资料菜单 在访问权 page菜单界面,可以看到系统预制的一些模块都会显示在这里, 那么,我们自己开发的模块如何显示在这块呢,从 ...

  3. Handler 、 Looper 、Message异步消息处理线程机制( hander消息机制原理)

    Handler . Looper .Message 这三者都与Android异步消息处理线程相关的概念. 那么什么叫异步消息处理线程呢? 异步消息处理线程启动后会进入一个无限的循环体之中,每循环一次, ...

  4. numpy.random.randn()与numpy.random.rand()的区别(转)

    numpy中有一些常用的用来产生随机数的函数,randn()和rand()就属于这其中. numpy.random.randn(d0, d1, …, dn)是从标准正态分布中返回一个或多个样本值. n ...

  5. Linux下删除某些非法字符文件名的文件

    1.首先利用 ls -i 查找ID 2.find ./ -inum 20718697 -exec rm '{}' \;

  6. JVM中OutOFMemory和StackOverflowError异常代码

    1.Out of Memory 异常 右键Run As --->Run Configuration 设置JVM参数 -Xms20m -Xmx20m 上代码: /** * VM Args:-Xms ...

  7. Python:SQLMap的工作流程

    流程图 代码解析 后面补充…… 版权 作   者:曾是土木人 新浪微博:http://weibo.com/cstmr 转载请注明出处:http://www.cnblogs.com/hongfei/p/ ...

  8. Redis学习系列二之.Net开发环境搭建及基础数据结构String字符串

    一.简介 Redis有5种基本数据结构,分别是string.list(列表).hash(字典).set(集合).zset(有序集合),这是必须掌握的5种基本数据结构.注意Redis作为一个键值对缓存系 ...

  9. CentOS安装Nginx 以及日志管理

    环境:CentOS-6.4 Nginx版本:nginx-1.6.2.tar Linux连接工具:XShell VMWare虚拟机上准备两台CentOS: 两台机器做同样操作(后边做负载均衡.高可用的时 ...

  10. Google Optimization Tools介绍

    Google Optimization Tools(OR-Tools)是一款专门快速而便携地解决组合优化问题的套件.它包含了: 约束编程求解器. 简单而统一的接口,用于多种线性规划和混合整数规划求解, ...