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的方法。
在eclipse中新建一个java项目“jdk”,然后在src目录上导入"Archive File",选择源码src.zip导入,导完目录结构如下(不用管编译报错):
右键项目export...,然后导出为jar包,起名为rt_debug.jar:
修改eclipse的jre设置,将rt_debug.jar添加到jre中,并移动到最前面:
最后再查看debug变量,可以看到变量值了:
eclipse如何debug调试jdk源码(任何源码)并显示局部变量的更多相关文章
- eclipse如何debug调试jdk源码
java是一门开源的程序设计语言,喜欢研究源码的java开发者总会忍不住debug一下jdk源码.虽然官方的jdk自带了源码包src.zip,然而在debug时查看变量却十分麻烦.例如调试HashMa ...
- eclipse如何debug调试jdk源码,并显示局部变量
http://blog.csdn.net/xuefeng0707/article/details/8738869 http://blog.csdn.net/leehsiao/article/detai ...
- Eclipse中debug调试java代码一直报Source not found的解决办法
今天使用eclipse的debug调试代码,一直没法正常调试,一按F6就提示Source not found 根据提示发现可能是另一个项目影响了,所以把另一个项目Close Project,这次直接t ...
- Eclipse 中 Debug 调试 java 代码一直报 Source not found
今天使用eclipse的debug调试代码,一直没法正常调试,一按F6就提示Source not found 根据提示发现可能是另一个项目影响了,所以把另一个项目Close Project,这次直接t ...
- 【链接】Eclipse的Debug调试技巧
Eclipse的Debug调试技巧大全 https://mp.weixin.qq.com/s/bORg9YxJiby2WenYRrXY-w 使用Eclipse调试Java程序的10个技巧 https: ...
- 如何在Eclipse中Debug调试Java代码
背景 有的时候你想debug调试Java的源代码,就想试图在Java源代码中设置断点,在Eclipse中常常会出现Unable to insert breakpoint Absent Line Num ...
- Eclipse的Debug调试技巧
作为开发人员,掌握开发环境下的调试技巧十分有必要.我们在编写java程序的过程中,经常会遇到各种莫名其妙的问题,为了检测程序是哪里出现问题,经常需要增加日志,看变量的值,这样调试很麻烦.假设我每天花费 ...
- Eclipse 在Debug调试中用到的快捷键
作用域 功能 快捷键 全局 单步返回 F7 全局 单步跳过 F6 全局 单步跳入 F5 全局 单步跳入选择 Ctrl+F5 全局 调试上次启动 F11 全局 继续 F8 全局 使用过滤器单步执行 Sh ...
- eclipse无法断点调试JDK源码的问题
最近换了新版的eclipse,在jdk源码里面,打断点发现无法进入源码调试,程序直接跳过,已查资料发现自己eclipse配置的是jre环境的. 此处要配成jdk目录才有效 打开preferences, ...
随机推荐
- hibernate学习(一)配置,导包
框架的作用 学过javaWeb基础的已经对web层 jsp servlet ,service 层 ,dao层的jdbc .DBUtils 有了很深的了解 并编写代码实现某种功能 为了提高开发 ...
- Django学习-23-ModelForm
Model + Form ----> 验证 + 数据库操作 class UserInfo(models.Model): username = models.CharField(max_lengt ...
- Django学习-10-命名空间
不使用命名空间,且两个APP某条url使用相同的name属性 app01_urls.py urlpatterns = [ url(r'aaa/$', views.app01_aaa, name=& ...
- 事件驱动的Java框架
事件驱动的三个要素: 事件源:能够接收外部事件的源体. 侦听器:能够接收事件源通知的对象. 事件处理程序:用于处理事件的对象.
- CF367 E - Working routine
十字链表模拟 #include<bits/stdc++.h> using namespace std; int n,m,q; struct Node{ int v; int d,r; }m ...
- OWA 无法连接到Exchange
Outlook WebAccess中无法连接到Microsoft Exchange.如果问题仍然存在,请联系您的组织的技术支持. 1. 在Exchange邮件服务器,收件人配置--邮箱--右击用户 ...
- 【CJOJ1494】【洛谷2756】飞行员配对方案问题
题面 题目背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2 名飞行员,其中1 名是英国飞行员,另1 ...
- 【noip模拟】2048
Time limit: 1000ms Memory limits: 256MB Description 2048曾经是一款风靡全球的小游戏.今天,我们换一种方式来玩这个小游戏.现在, ...
- pdf文件中截取eps图片并压缩
最近遇到了一个问题,需要从pdf裁剪出其中部分的矢量图格式的图片,并保存为eps格式,方便使用. 最简单的方法就是先用acrobat pro将pdf进行页面抽取,并裁剪,剩下所需要的图片部分,然后另存 ...
- jQuery中有关mouse的事件--mousedown/up/enter/leave/over/out----2017-05-10
mousedown:鼠标按下才发生 mouseup:鼠标按下松开时才发生 mouseenter和mouseleave效果和mouseover mouseout效果差不多:但存在区别,区别见代码解析: ...