调试JDK源码,无法追踪显示局部变量的解决方案
来源:互联网 发布:微信排雷软件 编辑:程序博客网 时间:2024/06/05 03:06
什么原因导致我们无法调试源码的时候无法追踪局部变量的值?
1.因为在我们通常在oracle官网下载的jdk源码包的时候,官网默认对rt.jar中类编译的时候,默认去除了调试信息,使得jar包的体积变得较小,因此我们在本地调试jdk源码的时候不会显示局部变量的值
2.我们看一下现象:
从图中可以看出,局部变量值不可获得
3.解决方案很明显了,我们只要手动重新编译一下jdk的源码包,带上调试信息即可解决方案-windows系统
1.首先我们找到jdk的根目录,进入找到源码包
src.jar
,解压该文件,一般我们只需要调试java,javax,org
三个目录下的源码,如果你需要调试其他包下面的源码,请保留相应目录,删除剩余目录即可。解压后的路径为:jdk根目录/jdk_src2.打开命令行,进入到jdk根目录,键入:
dir /B /S /X jdk_src*.java > filelist.txt //目的是列出我们刚刚解压出的所有java文件绝对路径清单3.重新编译我们需要的源码,加入调试信息,首先进入jdk根目录,创建jdk_debug目录,打开命令行,进入到jdk根目录,键入:
javac -J-Xms16m -J-Xmx1024m -sourcepath jdk_src -cp jre\lib\rt.jar -d jdk_debug -g @filelist.txt >>log.txt 2>&1 //这里需要注意,我们需要用当前版本jdk的去编译,不要跨版本编译(eg.1.7去编译1.8的jdk),命令大致解释如下:我们编译刚刚在jdk_src目录下列在filelist中的java类到jdk_debug目录下,并把输出日志打在log.txt文件中4.在jdk_debug目录下打开命令行,键入:
jar cf0 rt_debug.jar * 打包该目录下的文件到rt_debug.jar5.把这个生成的rt_debug.jar包复制到JDK_HOME\jre\lib\endorsed。如果没有endorsed目录,自己创建一下。
6.再去尝试调试源码,发现局部变量可以追踪了
解决方案-mac系统
1.方法类似相同,只有第二点有区别,键入:
ls -R ./jdk_src -R|sed s#^#pwd
# |grep ‘.java$’ >filelist.txt备注
1.intellij idea 15.*以上的版本默认支持局部变量的debug追踪功能,可以不进行jdk源码的重新编译
参考资料:
(http://stackoverflow.com/questions/18255474/debug-jdk-source-cant-watch-variable-what-it-is)
(http://blog.csdn.net/appleprince88/article/details/21873807)
转载请申明出处
- 调试JDK源码,无法追踪显示局部变量的解决方案
- 设置Eclipse可以Debug模式调试JDK源码,并显示局部变量的值
- 如何在eclipse中debug调试进入JDK源码及显示调试过程中的局部变量的值
- jdk源码调试显示变量
- Eclipse debug JDK源码无法看到局部变量
- 在调试c++程序时无法显示局部变量解决办法
- Debug JDK source 无法查看局部变量的问题解决方案
- vs2010的局部变量无法在调试时查看
- 解决Debug JDK8源码无法查看局部变量的问题
- Keil调试局部变量显示"not in scope"的问题解决
- Keil调试局部变量显示"not in scope"的问题解决
- Keil调试局部变量显示"not in scope"的问题解决
- Keil调试局部变量显示"not in scope"的问题解决
- 如何Debug jdk源码,查看局部变量
- Zend Studio 无法追踪函数的解决方案
- 解决eclipse无法断点调试JDK源码的问题
- 解决Debug JDK source 无法查看局部变量的问题方案
- (4) Debug JDK source 无法查看局部变量的问题解决方案
- 算法之经典排序算法小归纳
- Java IO
- Android性能优化之常见的内存泄漏
- 头像图片剪切flash工具 swfobject
- CentOS 添加 Oracle YUM 源
- 调试JDK源码,无法追踪显示局部变量的解决方案
- 经典排序算法 - 桶排序Bucket sort
- 解决php5.6的curl扩展开启失败的问题
- Gnuradio开发手册(一)
- 常用类
- VS2010如何调试带输入参数的exe
- 信号中断 与 慢系统调用
- 有关Cprimerplus的P143上的power.c(构建并运用幂函数)里一个没看懂的转义符号%g
- Qt .so动态链接库调用,配置