1. 程式人生 > >myeclipse調試代碼的時候看不到變量的值和jdk源碼重新編譯

myeclipse調試代碼的時候看不到變量的值和jdk源碼重新編譯

設置 編譯 cte 變量 令行 一份 使用 參數 jar

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 jdksrc\bin\* (註意0是零,不是o);
最後在把rt_debug.jar文件存儲在%JAVA_HOME%\jre\lib\debug\下;

step4: 文件引用


在需要要時,添加到java build 上,註意一點,位置一定要在平時設置的jre1.6之前;
這樣就會下走rt_debug.jar文件了。

myeclipse調試代碼的時候看不到變量的值和jdk源碼重新編譯