JDK源码调试
来源:互联网 发布:名字抽奖软件 编辑:程序博客网 时间:2024/05/16 07:37
1.首先遇到了一个问题line unavailable,然后通过以下方式解决:
http://blog.csdn.net/xuefeng0707/article/details/8738869
对于想了解JDK源码的同学来说,通过调试JDK源码来学习是一个常用的方法。
如果调试时,不能进入JDK源码,大部分错误都是line unavailable,则需要设置一番。
【Window】-【Preference】-【Java】-【Installed JREs】
这里可以看到Eclipse可以使用的Java环境,默认使用的是JRE(Java Runtime Environment),是不支持调试的,需要替换成JDK(Java Development Kit)。
有事候需要重新remove原来的jre候重新添加一下jdk中的就可以了。
2.后来遇到了问题是:解决Debug JDK source 无法查看局部变量的问题方案(重新编译rt.jar包)
用Eclipse Debug,当跟踪进jdk api里时(比如javax.swing包里的类),无法查看某些local filed的值。这是因为jdk里的代码在打包时删除了一些用于调试的信息,以减小安装包的体积。不过可以通过重新编译jdk源代码来恢复此功能。
java是一门开源的程序设计语言,喜欢研究源码的java开发者总会忍不住debug一下jdk源码。虽然官方的jdk自带了源码包src.zip,然而在debug时查看变量却十分麻烦。例如调试HashMap的 public V put(K key, V value) 方法并查看key的值时会提示:
可以看到不能显示变量的值了,原因在于oracle提供的jre中rt.jar不带debug信息:orcale在编译src时使用了 javac -g:none,意思是不带任何调试信息,这样可以减小rt.jar的大小。若想正常调试jdk,就只能重新编译src.zip。这里介绍下编译src.zip的方法。
在eclipse中新建一个java项目“jdk”,然后在src目录上选择"Import"导入, 再选"Archive File",选择jdk安装目录的源码src.zip导入,导完目录结构如下(不用管编译报错):
右键项目export...,然后导出为jar包,起名为rt_debug.jar:
修改eclipse的jre设置,将rt_debug.jar添加到jre中,并移动到最前面:
最后再查看debug变量,可以看到变量值了:
三.参考文献
1、https://my.oschina.net/xionghui/blog/497361
2、http://www.cnblogs.com/zhangshiwen/p/5742036.html
- Jdk源码调试
- 调试JDK源码
- JDK源码调试
- eclipse调试jdk源码
- debug调试jdk源码
- Java| 调试JDK源码
- Eclipse调试进入JDK源码
- Eclipse调试进入JDK源码
- Eclipse调试进入JDK源码
- Eclipse调试进入JDK源码
- Eclipse调试进入JDK源码
- Eclipse调试进入JDK源码
- jdk源码调试显示变量
- Eclipse调试进入JDK源码
- 在eclipse中调试jdk源码
- eclipse如何debug调试jdk源码
- eclipse如何debug调试jdk源码
- eclipse如何debug调试jdk源码
- 简单的算法问题9——爬楼梯(动态规划)
- 需要复习的:FFmpeg源代码简单分析:结构体成员管理系统-AVClass
- emacs 自带的简单入门教程
- linux的less命令
- Linux Command Line and....ch11(构建基本脚本)
- JDK源码调试
- 重新编译Python
- 需要复习的:FFmpeg源代码简单分析:结构体成员管理系统-AVOption
- 行内元素,块级元素与空元素
- Pow(x, n)
- 欢迎使用CSDN-markdown编辑器
- 软件测试员----面试,你准备好了么?
- 阿拉伯数字转换成罗马数字
- CSS id与class