如何调试JDK源代码并查看局部变量值
如下图:
按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源代码并查看局部变量值的更多相关文章
- 调试JDK源代码-一步一步看HashMap怎么Hash和扩容
调试JDK源代码-一步一步看HashMap怎么Hash和扩容 调试JDK源代码-ConcurrentHashMap实现原理 调试JDK源代码-HashSet实现原理 调试JDK源代码-调试JDK源代码 ...
- Eclipse/Myeclipse中查看和调试JDK源代码的方法
看过这篇文章后,实践写的 http://blog.csdn.net/qq_27857857/article/details/71250401 一共做了以下几部: 第一步: 第二步: 一直next,到第 ...
- Android Studio 调试过程中快捷查看断点处变量值(Ctrl+Shift+I无效)?
当你在做Keymap到Eclipse后,在debug过程中,在Eclipse中我们很喜欢用Ctrl+Shift+I去查看一个运算或者调用的结果,这样用起来很方便.但是keymap到Eclipse后,你 ...
- 跟踪调试JDK源码时遇到的问题及解决方法
目录 问题描述 解决思路 在IntelliJ IDEA中调试JDK源码 在eclipse中调试JDK源码 总结 问题描述 最近在研究MyBatis的缓存机制,需要回顾一下HashMap的实现原理.于是 ...
- 调试JDK源码时,不能查看变量的值
前几天本来想以debug模式看一下JDK的源码,进入调试模式时才发现,根本看不到方法里面变量值的情况.为什么呢?JDK现在的版本中,编译过后,去除了里面的调试信息.解决办法是,编译那些类,使其带有调试 ...
- eclipse Mars查看JDK源代码
eclipse Mars查看JDK源代码 问题描写叙述,eclipse(mars)下看不到JDK类的声明即源代码部分的内容. 如图右击string类型: 点击打开声明.结果出现了下图所看到的的错误,无 ...
- J-Link调试查看变量值总是显示<not in scope> 和<cannot evaluate>问题
原文:https://blog.csdn.net/gmpy_tiger/article/details/50395719 MDK/Keil 中,J-Link调试查看变量值总是显示<not in ...
- 解决debug到jdk源码时不能查看变量值的问题
目录 如何跟踪jdk源码 1. 编译源码 2. 关联源码 3. 大功告成 如何跟踪jdk源码 看到这个标题大概大家都会在心里想谁还跟踪个源码呀,在eclipse中打个断点,以debug的方式运行,然后 ...
- MDK/Keil 中,J-Link调试查看变量值总是显示<not in scope>
转载请注明出处,谢谢. MDK/Keil 中,J-Link调试查看变量值总是显示<not in scope> 原因:编译器把代码优化掉了,直接导致在仿真中变量根本没有分配内存,也就无法查看 ...
随机推荐
- python做数据分析pandas库介绍之DataFrame基本操作
怎样删除list中空字符? 最简单的方法:new_list = [ x for x in li if x != '' ] 这一部分主要学习pandas中基于前面两种数据结构的基本操作. 设有DataF ...
- 使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
先来看看下面实时效果演示: 用户点击编辑时,在点击行下动态产生一行.编辑铵钮变为disabled.新产生的一行有更新和取消的铵钮,点击“取消”铵钮,删除刚刚动态产生的行.编辑铵钮状态恢复. 更新与删除 ...
- 背水一战 Windows 10 (54) - 控件(集合类): ItemsControl 的布局控件 - OrientedVirtualizingPanel, VirtualizingStackPanel, WrapGrid
[源码下载] 背水一战 Windows 10 (54) - 控件(集合类): ItemsControl 的布局控件 - OrientedVirtualizingPanel, VirtualizingS ...
- 【转】C#如何创建泛型类T的实例
原文地址:https://www.cnblogs.com/lxhbky/p/6020612.html 最近在学历基类的写法时,遇到了一个问题:如何怎么创建一个泛型类T的实例呢? 废话不多说了, ...
- 使用wget命令爬取整站
快速上手(整个bootstrap网页全被你抓取下来了~_~) wget -c -r -npH -k -nv http://www.baidu.com 参数说明 -c:断点续传 -r:递归下载 -np: ...
- svn重新安装后报You need to upgrade the working copy first错误
问题来源 最近重新安装了操作系统,安装了一个最新版的svn,提交代码的时候报了一个错误:You need to upgrade the working copy first,!网上找了很多解决办法,都 ...
- JS简单表单验证
这里我是写了一个简单的注册表单验证功能,亲测有效,一起来看看吧! 首先我的HTML代码是这样的: class大家可以忽略一下,这里我项目使用的是bootstrap的样式. 输入用户名和密码用的是正则表 ...
- Android中常见的对话框
1. 普通对话框 public void click01(View view){ AlertDialog.Builder builder = new AlertDialog.Builder(this) ...
- Explain 执行计划 和 SQL优化
Explain 介绍 在分析查询性能时,考虑EXPLAIN关键字同样很管用.EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作.以及MySQL成功返回结果集需要 ...
- Vue + Element UI 实现权限管理系统 前端篇(二):Vue + Element 案例
导入项目 打开 Visual Studio Code,File --> add Folder to Workspace,导入我们的项目. 安装 Element 安装依赖 Element 是国内饿 ...