Q:myeclipse调试代码的时候看不到变量的值?
A: 调试的类的Class文件里没有包含LocalVariableTable属性表,
这是因为在编译时,编译者为了减少文件大小而不把属性表的信息放在Class文件中。
使用命令为javac -g
>http://hllvm.group.iteye.com/group/topic/25798
--解决方法:需要重新编译一份用于debug版的。
Q:重新编译jdk源码,启用debug信息
>http://www.cnblogs.com/thecatcher/p/5926696.html
>http://blog.csdn.net/id19870510/article/details/50879614
一般步骤是:
Step 1: Locate the JDK source
将安装好的jdk文件中的源码src.zip复制到一个地方jdksrc
Step 2: List all the source files to be compiled
使用myeclipse编译所有的源程序文件,首先需要建立java project,程序名为jdk_src
eclipse并不是使用javac来编译的,而是使用自己的编译器EJC. EJC也可以得到javac -g的效果,
需要勾选Add variable attributes to generated class files这个复选框.
然后将src.zip的文件解压缩到jdksrc下,再将jdksrc下所有的文件复制到jdk_src/src下
但是会出现一堆错误,将jdk_src的properties下的build下的jre去掉,设置Compiler参数就行,
具体设置:Windows -> Preferences -> Java -> Compiler -> Errors/Warnings ->
Deprecated and trstricted API -> Forbidden reference ->改成warning.
之后检查一下还有没error的文件,有的话直接删除掉.
step 3 : 文件归档
然后通过command命令行模式,将编译好的文件归档一下,使用一下命令 jar -cf0 rt_debug.jar jdksrcin* (注意0是零,不是o);
最后在把rt_debug.jar文件存储在%JAVA_HOME%jrelibdebug下;
step4: 文件引用
在需要要时,添加到java build 上,注意一点,位置一定要在平时设置的jre1.6之前;
这样就会下走rt_debug.jar文件了。