2011-03-13 88 views
5

我使用Eclipse 3.5,並將src.zip附加到Eclipse中的全局設置中。 窗口 - >首選項 - >爪哇 - >已安裝的JRE - >的rt.jar - 源附件 - ...../JDK/src.zip如何在ECLIPSE中調試.class文件?

我能夠成功地介入了Java核心庫.class文件並查看源代碼。我建立一個使用LinkedList的類,並在LinkedList類中設置了一個斷點。

當我調試我的源代碼斷點(我的項目)的工作很好,但是當我需要步入Java核心的lib .classes我碰到下面的錯誤在我的Eclipse eclipse error

無法由於缺少行號屬性,因此在java.util.LinkedList中安裝斷點。修改編譯器選項以生成行號屬性。

我在首選項中檢查了編譯器設置,發現所有選項都被選中爲true。 enter image description here 如果有人能幫我解決這個問題,那將會很棒。

在此先感謝。

回答

6

你可能有編譯器設置,包括你的類文件的調試信息,但在rt.jar中的類文件未編譯的方式。您需要重新編譯rt.jar中所有類的源代碼(不適合心臟f弱)或download a debug build of the jdk

+0

工作就像一個魅力。非常感謝你。一直在尋找這個。 – AKh

+0

嗨,大衛...你能告訴如何在Java核心類中進行更改,並編譯它們並在我的項目中使用它們嗎?例如:我想修改私有變量 - 頭部 - 爲了我的研究目的在公共中爲LinkedList類賦值?我研究LinkedList的行爲...即使你指向某些資源,也會欣賞。 – AKh

+0

我不認爲這是一個好主意,如果你只是想訪問私有變量進行研究,你可以通過反思來完成。例如,減去異常處理:列表名單=新的LinkedList (); list.add( 「富」); Field header = list.getClass()。getDeclaredField(「header」); header.setAccessible(真);的System.out.println(header.get(列表)); –

2

blog posts給分的完整列表,檢查

按照以下步驟,如果你使用的是Eclipse IDE

enter image description here

  1. 進入windows > preferences > Java > compiler屏幕編譯。
  2. 確保選中了爲生成的文件(調試器使用)添加行號屬性複選框。
  3. 重新構建並嘗試添加一個斷點,希望它能爲你工作。

注螞蟻構建

按照以下步驟,如果你正在使用ANT工具編譯:

  1. 檢查build.xml文件,並確保調試屬性在javac任務中設置爲true
  2. 另外,如果您使用JBoss作爲應用程序服務器,那麼將su請注意,您已經打開了一個遠程機器連接的套接字綁定端口。如果不是,那麼只要確保C:/jboss/bin/run.bat有一個條目:
    set JAVA_OPTS=%JAVA_OPTS% -Xdebug –Xrunjdwp:transport=dt_socket,address=5000,server=y,suspend=n」用於打開端口5000以偵聽調試/遠程Java應用程序的所有套接字連接。
  3. 重新構建並嘗試添加一個斷點,希望它能爲你工作。
2

因爲JRE類不適合調試,所以不應該使用帶有JDR src的JRE。

讓Eclipse中搜索Java環境,然後從結果列表中選擇JDK。此Java環境將正確連接src.zip,您應該可以進行調查。即使JDK類沒有完整的調試信息可用,所以你不能看到局部變量等

(此外,編譯器設置面板僅適用於碼,JRE類預生成和

注專家組不會影響他們)。